Mysql 数据类型优化的几个简单原则

1. 更小的通常更好

一般情况下,应该尽量使用可以正确存储数据的最小数据类型。例如只需要存储 0-200 的数字,tinyint unsigned 更好。但是要确保没有低估需要存储的值的范围,否则在数据表中修改数据类型的范围会比较麻烦。

2. 简单就好

简单数据类型的操作通常需要更少的 CPU 周期。例如,整数比字符操作代价更低,因为字符集和校对规则使字符比较比整型更复杂。使用 Mysql 内建的类型而不是字符串来存储日期和时间。

3.尽量避免NULL

Mysql 默认列的属性是 NULL,通常情况下最好制定列为 NOT NULL,除非真的需要存储 NULL 值。如果查询中包含可为 NULL 的列,对 Mysql 来说更难优化,因为可为 NULL 的列使得索引、索引统计和值比较都更复杂。可为 NULL 的列会使用更多的存储空间,在 Mysql 里也需要特殊处理。当可为 NULL 的列被索引时,每个索引记录需要一个额外的字节,在 MyISAM 引擎中甚至还可能导致固定大小的索引变成可变大小的索引。通常把可为 NULL 的列改为 NOT NULL 带来的性能提升比较小,但是,如果计划在列上建立索引,就应该尽量避免设计成可为 NULL 的列。

文章同步发布在我的个人博客中,传送门Hesunfly Blog

你可能感兴趣的:(Mysql 数据类型优化的几个简单原则)