转:58到家数据库30条军规解读
转:58到家数据库30条军规解读(部分)
军规适用场景,并发量大,数据量大的互联网业务。
军规:介绍内从。
解读:讲解原因,解读比军规更重要。
一 基础规范
1.必须使用InnoDB存储引擎
解读:支持事物,行级锁,并发性能好,CPU以及内存缓存页优化使得资源利用率高。
2.必须使用UTF8字符集
解读:万国码,无乱码风险,无需转码,节省空间。
3.数据库表,字段必须加入中文注释
解读:N年之后,谁tm知道这玩意是做什么的。
4.禁止使用存储过程,视图,触发器,Event
解读:高并发大数据的互联网业务,架构的设计思路是"解放数据库CPU,将计算转移到服务层"。在并发量大的情况下,这些功能很可能将数据库给拖死,业务逻辑放到服务层具备很好的扩展性,能够实现增加机器就增加性能。数据库擅长存储于索引,CPU计算还是上移吧。
5.禁止存储大文件或大照片
解读:为何要让数据库做它不擅长的事情,文件存储在文件系统,数据库保存url即可。
二 表设计规范
6.单实例表的数目必须小于500。
7.单表列数目必须小于30。
8.表必须有主键,例如自增主键。