一、数据库对象命名原则
- 所有数据库对象名称必须使用小写字母可选用下划线分割(因为linux下对文件名的大小写敏感);
- 所有数据库对象名称定义禁止使用Mysql保留关键字;
- 数据库对象的命名要能做到见名识义,并且最好不要超过32个字;
- 临时库表必须以tmp为前缀并以日期为后缀;
- 备份库,备份表必须以bak为前缀并以日期为后缀;
- 所有存储相同数据的列名和列类型必须一致(即关联两个表的列,如果类型不同,会影响查询效率);
- 所有表必须使用Innodb存储引擎;
- 数据库和表的字符集统一使用UTF8;
- 所有表和字段都需要添加注释;
- 尽量控制单表数据量的大小,建议控制在500万以内(500万并不是MySQL数据库的限制,限制取决于存储设置和文件系统,解决方案:可以用历史数据归档,分库分表等手段来控制数据量大小);
- 谨慎使用MySQL分区表(分区表在物理上表现为多个文件,在逻辑上表现为一个表);
- 尽量做到冷热数据分离,减小表的宽度(作用:减少磁盘IO,保证热数据的内存缓存命中率,更有效的利用缓存,避免读入无用的冷数据);
- 禁止在表中建立预留字段;
- 禁止在数据库中存储图片,文件等二进制数据;