没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎(mysql5.5之前默认使用Myisam,5.6以后默认的为Innodb)Innodb 支持事务,支持行级锁,更好的恢复性,高并发下性能更好。
2、数据库和表的字符集统一使用UTF8
兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效。
3、所有表和字段都需要添加注释
使用comment从句添加表和列的备注, 从一开始即要进行数据字典的维护。
4、尽量控制单表数据量的大小,建议控制在500万以内
500万并不是MySQL数据库的限制,过大会造成修改表结构,备份,恢复都会有很大的问题;可以用历史数据归档(应用于日志数据),分库分表(应用于业务数据)等手段来控制数据量大小。
5、谨慎使用MySQL分区表
分区表在物理上表现为多个文件,在逻辑上表现为一个表 谨慎选择分区键,跨分区查询效率可能更低 建议采用物理分表的方式管理大数据。
6、尽量做到冷热数据分离,减小表的宽度
MySQL限制每个表蕞多存储4096列,并且每一行数据的大小不能超过65535字节 减少磁盘IO,保证热数据的内存缓存命中率(表越宽,把表装载进内存缓冲池时所占用的内存也会越大,也会消耗更多的IO) 更有效的利用缓存,避免读入无用的冷数据 经常一起使用的列放到一个表中(避免更多的关联操作)。
7、禁止在表中建立预留字段
预留字段的命名很难做到见名识义 ,预留字段无法确认存储的数据类型,所以无法选择合适的类型 对预留字段类型的修改,会对表进行锁定。
8、禁止在数据库中存储图片,文件等大的二进制数据
通常文件很大,会短时间内造成数据量快速增长,数据库进行数据库读取时,通常会进行大量的随机IO操作,文件很大时,IO操作很耗时 通常存储于文件服务器,数据库只存储文件地址信息。
9、禁止在线上做数据库压力测试
10、禁止从开发环境,测试环境直接连接生成环境数据库
以上是南昌网站建设开发公司百恒科技小编要跟大家聊到的一些关于MySQL数据库的基本设计规范,希望能够对大家有所帮助,想要了解更多关于这方面的内容,欢迎留言咨询百恒科技,百恒科技是一家专业的南昌网站建设开发、南昌小程序开发公司!
相关文章推荐 : MySQL中trim函数的用法
linux下如何实现mysql数据库每天自动备份定时备份?