本文为系列文章,主要介绍36条来自一线的MySQL数据库开发实战经验,每一条经验背后都是血淋林的教训,若有一条让你有所受益,本文的目的就达到了。
本文将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
文章源自玩技e族-https://www.playezu.com/12410.html
• 让数据库多做她擅长的事:
√ 尽量不在数据库做运算
√ 复杂运算移到程序端CPU
√ 尽可能简单应用MySQL
• 反例: md5() / Order by Rand()
2、控制单表数据量
• 一年内的单表数据量预估
√ 纯INT不超1000W
√ 含CHAR不超500W
• 合理分表不超载,可以按以下字段
USERID
DATE
AREA
….
• 建议单库不超过300-400个表
3、保持表身段苗条
• 表字段数少而精,好处如下
√ IO高效
√全表遍历
√表修复快
√提高幵发
√alter table快
• 单表多少字段合适?见下文
• 单表1G体积 500W行评估
√ 顺序读1G文件需N秒
√ 单行不超过200Byte
√ 单表不超50个纯INT字段
√ 单表不超20个CHAR(10)字段
• 单表字段数上限控制在20~50个
平衡范式不冗余
• 平衡是门艺术
√ 严格遵循三大范式?
√ 效率优先、提升性能
√ 没有绝对的对不错
√ 适当时牺牲范式、加入冗余
√ 但会增加代码复杂度拒绝3B
• 数据库幵发像城市交通
√ 非线性增长
• 拒绝3B
详细解析见后续文章
核心军规小结
• 尽量不在数据库做运算
• 控制单表数据量
• 保持表身段苗条
• 平衡范式不冗余
• 拒绝3B