For optimum storage, you should try to use the most precise type
in all cases. For example, if an integer column is used for values
in the range from 1
to
99999
, MEDIUMINT UNSIGNED
is
the best type. Of the types that represent all the required
values, this type uses the least amount of storage.
Tables created in MySQL 5.0.3 and above uses a new storage format
for DECIMAL
columns. All basic calculation
(+,-,*,/
) with DECIMAL
columns are done with precision of 65 decimal (base 10) digits.
See Section 11.1.1, “Overview of Numeric Types”.
Prior to MySQL 5.0.3, calculations on DECIMAL
values are performed using double-precision operations. If
accuracy is not too important or if speed is the highest priority,
the DOUBLE
type may be good enough. For high
precision, you can always convert to a fixed-point type stored in
a BIGINT
. This allows you to do all
calculations with 64-bit integers and then convert results back to
floating-point values as necessary.