高性能Mysql数据库表设计原则

高性能Mysql数据库表设计原则

风流意气都作罢 提交于 2019-12-06 11:16:04
1、更小通常更好 选择表示数据的最小类型(正确存储你的内容):比如说,能够使用char 数据类型存储,就不必选择varchar,能够使用int型存储数据,就不应该使用long型。 理由:更小的数据类型使用了更小的磁盘空间,内存和cpu缓存,而且需要的cpu周期也更少。 确保不会低估要存储的值。(能够很好的把握需求,对要存储的数据要比较精确的判断) 2、简单就好 尽可能选择简单的数据类型存储数据,mysql的数据类型不外乎int,char,varchar,text等等。那么在选择的时候,尽量选择最简单的基本数据类型存储数据。比如我平常存储时间的时候一般都是存成int类型。 理由:越简单的数据类型,需要的cpu周期越少。 3、尽量避免null 尽可能的把字段定义为 not null。 理由:Mysql 难以优化引用了可空列的查询,空列会使索引,索引统计和值更加复杂,可空列需要更多的存储空间。一般来说,设置默认值(DEFAULT)是个比较好 的习惯。当然该条对Mysql表性能的提升影响不是很大,不应放在最优先考虑的地位。 我们在设计一个Mysql数据表的时候: 第一步:大致确定字段的数据类型,数字,字符串,时间等,比较直观 第二步:确定特定的类型,比如说 :数字里有tinyint,smallint,int,long等,选择最合适的一个(更小通常更好) 第三步:如有必要,请为字段设置默认值