几种基本数据类型选择

浮点数与定点数
1.浮点数:在mysql中一般用float,double(或real)来表示浮点数。如果插入数据的精度超过该列定义的实际精度,则插入值会被四舍五入到实际定义的精度值,然后插入,四舍五入的过程不会报错(精度不够准)。
定点数:定点数实际上是以字符串形式存放的,所以精度更高,能更准确的保存数据。
浮点数会出一些问题,单精度和双精度也是有差异的。
涉及到金融,必须用定点数来保存。
浮点数的比较也是一个普遍存在的问题,如果要比较,则进行使用范围比较,不要使用==来比较。
注意:在今后关于浮点数和定点数的应用中,用户要考虑到以下几个原则:
 浮点数存在误差问题;
 对货币等对精度敏感的数据,应该用定点数表示或存储;
 在编程中,如果用到浮点数,要特别注意误差问题,并尽量避免做浮点数比较;
 要注意浮点数中一些特殊值的处理。
日期类型选择
根据实际需要选择能够满足应用的最小存储的日期类型。如果应用只需要记录“年
份”,那么用 1 个字节来存储的 YEAR 类型完全可以满足,而不需要用 4 个字节来
存储的 DATE 类型。这样不仅仅能节约存储,更能够提高表的操作效率。
 如果要记录年月日时分秒,并且记录的年份比较久远,那么最好使用 DATETIME,
而不要使用 TIMESTAMP。因为 TIMESTAMP 表示的日期范围比 DATETIME 要短得多。
 如果记录的日期需要让不同时区的用户使用,那么最好使用 TIMESTAMP,因为日
期类型中只有它能够和实际时区相对应。
常见数据类型选取原则:
 对于字符类型,要根据存储引擎来进行相应的选择。
 对精度要求较高的应用中,建议使用定点数来存储数值,以保证结果的准确性。
 对含有 TEXT 和 BLOB 字段的表,如果经常做删除和修改记录的操作要定时执行
OPTIMIZE TABLE 功能对表进行碎片整理。
 日期类型要根据实际需要选择能够满足应用的最小存储的日期类型。



你可能感兴趣的:(Mysql)