暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

深入MySQL:MySQL行业军规(一)

博森瑞 2021-06-24
394

 点击上方蓝色字关注我们 




MySQL行业军规





适用场景:高并发量、大数据量的互联网业务架构
军规并不是死板教条的,而对军规的解读比军规本身更重要



基础规范




1、必须使用InnoDB存储引擎
作为
Oracle收购MySQL后,官方主力研发的存储引擎,InnoDB以支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高等等特性在MySQL的存储引擎插件中显得尤为特殊.


虽然MySQL作为开源数据库,引入分层设计,可以在存储引擎层引入更多的,更适用于具体业务场景的不同存储引擎,但就目前而言,当并不明确数据库业务与架构兼容性时,InnoDB往往是最优解.

2、必须使用UTF8字符集
更准确的讲,在
MySQL数据库中必须使用utf8mb4字符编码.
除开本身UTF-8作为万国码身份,无需转码,无乱码风险,节省空间等等优势之外,
MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode
相较于之前的utf8而言,
utf8mb4有着对UTF-8更强的兼容性.建议会使用.


3、数据表、数据字段必须加入注释
在维护人员迭代后,后续的维护人员已然能清晰的理解数据库设计架构.


4、禁止使用存储过程、视图、触发器、Event
高并发,大数据场景下的互联网业务,架构设计思路是“解放数据库
CPU,将计算转移到服务层”,并发量大的情况下,上述功能极易将压力集中在数据库层面,业务逻辑放到服务层具备更好的扩展性,能够轻易实现“增机器就加性能”。数据库擅长存储与索引,CPU计算还是上移更合理.

5、禁止存储大文件或者大照片
虽然
MySQL支持了BLOB/TEXT这类用于存放大B(binary)/大C(character)对象的数据类型.但依然不建议直接将这些对象直接保存在数据库中.
数据库在处理这些大对象时,反而会因为编码等各种问题导致提供数据性能变差.
而更应该将这些大对象以文件的形式保存在文件系统中,仅在数据库中保存
path/URL/URI对象便于快速定位资源即可.

推荐阅读


再次感谢大家一如既往的支持与鼓励


            
点个“在看”有爱相伴



文章转载自博森瑞,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论