加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

分享一份大佬的MySQL数据库设计规范,值得收藏

发布时间:2019-10-14 16:12:55 所属栏目:MySql教程 来源:波波说运维
导读:副标题#e# MySQL数据库与 Oracle、 SQL Server 等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。无意中从github上看到一个大佬的MySQL数据库设计规范,顺便在这里分享一下。 https://github.com/jly8866/ar

4. 排序和分组

  • 【建议】减少使用order by,和业务沟通能不排序就不排序,或将排序放到程序端去做。order by、group by、distinct这些语句较为耗费CPU,数据库的CPU资源是极其宝贵的。
  • 【建议】order by、group by、distinct这些SQL尽量利用索引直接检索出排序好的数据。如where a=1 order by可以利用key(a,b)。
  • 【建议】包含了order by、group by、distinct这些查询的语句,where条件过滤出来的结果集请保持在1000行以内,否则SQL会很慢。

5. 线上禁止使用的SQL语句

  • 【高危】禁用update|delete t1 … where a=XX limit XX; 这种带limit的更新语句。因为会导致主从不一致,导致数据错乱。建议加上order by PK。
  • 【高危】禁止使用关联子查询,如update t1 set … where name in(select name from user where…);效率极其低下。
  • 【强制】禁用procedure、function、trigger、views、event、外键约束。因为他们消耗数据库资源,降低数据库实例可扩展性。推荐都在程序端实现。
  • 【强制】禁用insert into …on duplicate key update…在高并发环境下,会造成主从不一致。
  • 【强制】禁止联表更新语句,如update t1,t2 where t1.id=t2.id…。

【编辑推荐】

  1. 国产自研数据库打败 Oracle?网友热议
  2. 什么?Redis的QPS是MySQL的100倍?
  3. 面试官出的MySQL索引问题,这篇文章全给你解决!
  4. 详解Oracle数据库表空间设计--ASM/BFT/OMF综合使用
  5. 10月数据库排行:Microsoft SQL Server 分数增加最多
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读