MySQL进阶(八)MySQL表设计原则

表设计原则
编号 设计建议
1 在创建业务表时,库名、表名、字段名必须使用小写字母,采用 “_” 分割
2 在MySQL数据库中,通过lower_case_table_name参数区分表名的大小写,默认为0,代表大小写敏感
3 显示为表创建一个使用自增列INT或者BIGINT类型主键,可以保证写入顺序是自增的,和B+tree叶子节点分裂顺序一致。写入更加高效,TPS性能会更高,存储效率也是最高的
4 金钱、日期时间、IPV4尽量使用int来存储。用int存储金钱,让int单位为分,这样子就不存在四舍五入了,存储的数值更精确
4 说明:日期类型也可以选择datetime,生产环境可以使用datetime时间类型,也可以使用int来存储时间,通过转换函数from_unixtime 和 unix_timestamp来实现
5 text和blob这种存大量文字或者图片的大数据类型,建议不要与业务表放在一起。主要业务表切记出现这样大类型的字段
6 select查询表时只需要获取必要字段,避免使用select * 。这样可以减少网络带宽消耗,还有可能利用到覆盖索引
7 很长的字符串可以考虑创建前缀索引,提供索引利用率
8 所有字段定义中,默认加上not null 约束,避免出现null
9 索引字段上面不要使用函数,否则使用不到索引,也不要创建函数索引
10 join列类型要保持一致,其中包括长度、字符集都要一致
11 当在执行计划中的extra中看到using filesort或者using temporary时,优先考虑创建排序索引和分组索引
12 limit 语句上的优化,建议使用主键进行范围检索,缩短结果集大小,使查询效率更高
13 在MySQL数据库中,可以通过使用show global status命令来查看数据库的运行状态,通过得出的数值优化MySQL运行效率

你可能感兴趣的:(MySQL进阶(八)MySQL表设计原则)