统一规范
存储引擎: 请统一使用innodb存储引擎,特殊的数据库引擎必须通过DBA的评审。
字符集: 统一使用utf8字符集。这个要从应用程序、服务器、数据库的表、字段等全部统一起来。注意:MySQL中的utf8mb4
字符集,才是真正的utf8,请用这个。
作用范围:不要在MySQL存储大对象,比如图片、音乐等;不要用MySQL做Gis运算、全文检索;不使用存储过程、触发器、函数、外键,避免破坏数据库的性能和扩展性。
使用上限:
- 每个MySQL实例,数据库不要超过50个;
- 单数据库容量,不要超过500GB,否则分库;
- 单表记录数量,不要超过5000W,否则分表;
- 单表子段数量,不要超过30个,否则拆表;
- 单张表中索引数量不超过5个,单个索引中的字段数不超过5个;
- varchar字段最大值不超过1024;注意:VARCHAR(N)中的N表示字符数而非字节数
索引
- 数据量比较小,一般认为2000条以下不用建立索引
- 选择性很小的字段,比如status、type等,只有几个值,不需要索引。因为数据库查询数据只有两种方式,一种是可以快速定位到记录,另一种是全表扫描。比如status只有0或者1,在5000W数据里面各占一半,索引没有意义。
- 索引内容尽