MYSQL优化杂谈五,表结构设计优化

模型设计

  • 适度冗余,让Query尽量减少Join
  • 大字段垂直拆分summary表优化(表的垂直拆分)
  • 大表的水平拆分-基于类型的分拆优化
  • 统计表-准实时优化(通过定时统计数据代替实时统计数据)
满足以下条件,可以考虑使用定时统计表:
1.统计信息的准确性要求并不是特别严格
2.统计信息对时间并不是太敏感
3.统计信息的访问非常频繁,重复执行较多
4.参与统计数据量较大

合适的数据类型

  • 选用更小的数据类型减少存储空间,使查询相同数据需要的IO资源降低
  • 通过合适的数据类型加速数据的比较
(比如,"Y-m-d" 时间使用varchar存储与使用date存储,在比较时date类型速度更快)
再比如,同样存储时间格式,timstamp占用空间对少,只需要四个字节,如果不需要存储到1970年之前的时间,使用timestamp
存储时间,可以减少存储空间

规范的对象名称

  • 数据库和表名尽可能和所服务的业务模块名一致
  • 服务于同意子模块的一类表尽量以子模块为前缀或者后缀
  • 字段名称尽量保持和实际数据响应
  • 索引名称尽量包含所有的检索字段名或者缩写
  • 约束其他对象也应该尽可能包含所属表或者其他对象,以表名各自关系
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容