MySQL数据库开发的三十六条军规

官方账号 2018-05-1008:35:12经验总结评论307字数 705阅读2分21秒阅读模式

本文为系列文章,主要介绍36条来自一线的MySQL数据库开发实战经验,每一条经验背后都是血淋林的教训,若有一条让你有所受益,本文的目的就达到了。文章源自玩技e族-https://www.playezu.com/12410.html

本文将36条军规做了如下分类:文章源自玩技e族-https://www.playezu.com/12410.html

一.核心军规(5)文章源自玩技e族-https://www.playezu.com/12410.html

二.字段类军规(6)文章源自玩技e族-https://www.playezu.com/12410.html

三.索引类军规(5)文章源自玩技e族-https://www.playezu.com/12410.html

四.SQL类军规(15)文章源自玩技e族-https://www.playezu.com/12410.html

五.约定类军规(5)文章源自玩技e族-https://www.playezu.com/12410.html

为了避免收藏不看,让大家更有耐心看下去,印象更深刻些,小编将按以上分类分5次分别发布这些内容,本文是其中的第1篇,首先介绍核心军规:文章源自玩技e族-https://www.playezu.com/12410.html

1、尽量不在数据库做运算

• 别让脚趾头想事情文章源自玩技e族-https://www.playezu.com/12410.html

• 那是脑瓜子的职责文章源自玩技e族-https://www.playezu.com/12410.html

MySQL数据库开发的三十六条军规文章源自玩技e族-https://www.playezu.com/12410.html

• 让数据库多做她擅长的事:文章源自玩技e族-https://www.playezu.com/12410.html

  1. √ 尽量不在数据库做运算文章源自玩技e族-https://www.playezu.com/12410.html

  2. √ 复杂运算移到程序端CPU文章源自玩技e族-https://www.playezu.com/12410.html

  3. √ 尽可能简单应用MySQL文章源自玩技e族-https://www.playezu.com/12410.html

• 反例: md5() / Order by Rand()文章源自玩技e族-https://www.playezu.com/12410.html

2、控制单表数据量

• 一年内的单表数据量预估文章源自玩技e族-https://www.playezu.com/12410.html

  1. √ 纯INT不超1000W文章源自玩技e族-https://www.playezu.com/12410.html

  2. √ 含CHAR不超500W文章源自玩技e族-https://www.playezu.com/12410.html

MySQL数据库开发的三十六条军规文章源自玩技e族-https://www.playezu.com/12410.html

• 合理分表不超载,可以按以下字段文章源自玩技e族-https://www.playezu.com/12410.html

  1. USERID文章源自玩技e族-https://www.playezu.com/12410.html

  2. DATE文章源自玩技e族-https://www.playezu.com/12410.html

  3. AREA文章源自玩技e族-https://www.playezu.com/12410.html

….文章源自玩技e族-https://www.playezu.com/12410.html

 建议单库不超过300-400个表文章源自玩技e族-https://www.playezu.com/12410.html

3、保持表身段苗条

• 表字段数少而精,好处如下文章源自玩技e族-https://www.playezu.com/12410.html

  1. √ IO高效文章源自玩技e族-https://www.playezu.com/12410.html

  2. √全表遍历文章源自玩技e族-https://www.playezu.com/12410.html

  3. √表修复快文章源自玩技e族-https://www.playezu.com/12410.html

  4. √提高幵发文章源自玩技e族-https://www.playezu.com/12410.html

  5. √alter table快文章源自玩技e族-https://www.playezu.com/12410.html

• 单表多少字段合适?见下文文章源自玩技e族-https://www.playezu.com/12410.html

• 单表1G体积 500W行评估文章源自玩技e族-https://www.playezu.com/12410.html

  1. √ 顺序读1G文件需N秒文章源自玩技e族-https://www.playezu.com/12410.html

  2. √ 单行不超过200Byte文章源自玩技e族-https://www.playezu.com/12410.html

  3. √ 单表不超50个纯INT字段文章源自玩技e族-https://www.playezu.com/12410.html

  4. √ 单表不超20个CHAR(10)字段文章源自玩技e族-https://www.playezu.com/12410.html

 单表字段数上限控制在20~50个文章源自玩技e族-https://www.playezu.com/12410.html

平衡范式不冗余

MySQL数据库开发的三十六条军规文章源自玩技e族-https://www.playezu.com/12410.html

• 平衡是门艺术文章源自玩技e族-https://www.playezu.com/12410.html

  1. √ 严格遵循三大范式?文章源自玩技e族-https://www.playezu.com/12410.html

  2. √ 效率优先、提升性能文章源自玩技e族-https://www.playezu.com/12410.html

  3. √ 没有绝对的对不错文章源自玩技e族-https://www.playezu.com/12410.html

  4. √ 适当时牺牲范式、加入冗余文章源自玩技e族-https://www.playezu.com/12410.html

  5. √ 但会增加代码复杂度拒绝3B文章源自玩技e族-https://www.playezu.com/12410.html

MySQL数据库开发的三十六条军规文章源自玩技e族-https://www.playezu.com/12410.html

• 数据库幵发像城市交通文章源自玩技e族-https://www.playezu.com/12410.html

  1. √ 非线性增长文章源自玩技e族-https://www.playezu.com/12410.html

• 拒绝3B文章源自玩技e族-https://www.playezu.com/12410.html

详细解析见后续文章文章源自玩技e族-https://www.playezu.com/12410.html

核心军规小结

• 尽量不在数据库做运算文章源自玩技e族-https://www.playezu.com/12410.html

• 控制单表数据量文章源自玩技e族-https://www.playezu.com/12410.html

• 保持表身段苗条文章源自玩技e族-https://www.playezu.com/12410.html

• 平衡范式不冗余文章源自玩技e族-https://www.playezu.com/12410.html

• 拒绝3B文章源自玩技e族-https://www.playezu.com/12410.html

 文章源自玩技e族-https://www.playezu.com/12410.html

注意:本文法律责任由该文章作者承担,侵权请联系2523030730▷诈骗举报◁▷新闻不符◁▷我要投稿◁
  • 我们QQ群
  • QQ扫一扫
  • weinxin
  • 微信公众号
  • 公众号扫一扫
  • weinxin
官方账号