天天看点

mysql选择合适的数据类型

1.char和varchar

       都是用来存储字符串的,但它们保存和检索的方式不同,char是固定长度的字符类型,而varchar属于可变长度的字符类型.

mysql选择合适的数据类型

        由于char是固定长度的,所以它的处理速度比varchar快得多,但是其缺点是浪费存储空间,程序需要对行尾空格进行处理,所以对那些长度变化不大并且对查询速度有较高要求的数据可以考虑使用char类型存储.

        在mysql中,MyISAM存储引擎建议使用char.在innoDB存储引擎中,建议使用varchar,对于innoDB数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行都使用指向数据列值的头指针),因此在本质上,使用固定长度的char不一定比使用可变长度的varchar列性能要好.因此,主要的性能因素是数据行使用的存储总量.由于char平均占用的空间多于varchar,因此使用varchar来最小化需要处理的数据行的存储总量和磁盘I/O是比较好的.

2.text与blob

        一般在保存少量字符串的时候,我们会选择char或者varchar,而在保存较大文本时,通常会选择text或者blob,二者之间的主要差别是blob能用来保存二进制数据,比如照片,而text只能保存字符数据,比如一篇文章或者日记.blob和text会引起一些性能问题,特别是执行了大量的删除操作时,删除操作会在数据表中留下很大的"空洞",为了提高性能,建议定期使用   OPTIMIZE  TABLE 功能对这类表进行碎片整理,避免因为"空洞"导致性能问题.

3.浮点数(float,double)和定点数(decimal)

        对精度要求较高的应用中,建议使用定点数来存储数值,以保证结果的准确性.

4.日期类型可以根据实际需要选择能够满足应用的最小存储的日期类型.

继续阅读