标签:指定 精度 推荐 src 保存 int 并且 限制 方式
解决方案
1、decimal
在MySQL中,带有小数的精确运算可以使用decimal类型
CREATE TABLE t3 (i INT, d1 decimal(10,3), d2 decimal(10,3));
+------+---------+-------+
| i | a | b |
+------+---------+-------+
| 6 | -51.400 | 0.000 |
+------+---------+-------+
限制
decimal的精确表示为decimal(M,D),其中M最大为65,D最大为30。因此其表示的范围是远远小于double所能表示的范围
2、基于应用的解决方案
比如商品价格涉及到小数,用20.95元表示,那么可以把价格变成以分为单位,即变成2095。
结论
不要使用float、double以及其等价类型做精确计算。如果要在MySQL中做精确计算,推荐使用decimal或者将相关计算任务交给应用。
8.4 日期类型选择
MySQL 提供的常用日期类型有DATE、TIME 、DATETIME、TIMESTAMP,它们之间的区
别在第3 章中已经进行过详细论述,这里就不再赘述。下面主要总结一下选择日期类型的原
则。
份”,那么用1 个字节来存储的YEAR 类型完全可以满足,而不需要用4 个字节来
存储的DATE 类型。这样不仅仅能节约存储,更能够提高表的操作效率。
而不要使用TIMESTAMP。因为TIMESTAMP 表示的日期范围比DATETIME 要短得多。
期类型中只有它能够和实际时区相对应。
8.5 小结
本章中主要介绍了常见数据类型的选择原则,简单归纳如下。
? 对于字符类型,要根据存储引擎来进行相应的选择。
? 对精度要求较高的应用中,建议使用定点数来存储数值,以保证结果的准确性。
? 对含有TEXT 和BLOB 字段的表,如果经常做删除和修改记录的操作要定时执行
OPTIMIZE TABLE 功能对表进行碎片整理。
? 日期类型要根据实际需要选择能够满足应用的最小存储的日期类型。
标签:指定 精度 推荐 src 保存 int 并且 限制 方式
原文地址:http://www.cnblogs.com/chxbar/p/6650655.html