• MySQL数据库开发的 36 条军规!

    发布:51Code 时间: 2018-07-11 09:54

  • 来自一线的实战经验,主要针对DBA和后端开发人员,总是在灾难发生后,才想起容灾的重要性;总是在吃过亏后,才记得曾经有人提醒过。 核心军规 1、尽量不在数据库做运算 2、控制...

  • 来自一线的实战经验,主要针对DBA和后端开发人员,总是在灾难发生后,才想起容灾的重要性;总是在吃过亏后,才记得曾经有人提醒过。

    核心军规

    1、尽量不在数据库做运算

    2、控制单表数据量 纯INT不超过10M条,含Char不超过5M条

    3、保持表身段苗条

    4、平衡范式和冗余

    5、拒绝大SQL,复杂事务,大批量任务

    字段类军规

    1、用好数值字段,尽量简化字段位数

    2、把字符转化为数字

    3、优先使用Enum或Set

    4、避免使用Null字段

    5、少用并拆封Text/Blob

    6、不在数据库中存图片

    索引类军规

    1、谨慎合理添加索引

    2、字符字段必须建立前缀索引?

    3、不在索引列做运算

    4、自增列或全局ID做InnoDB主键

    5、尽量不用外键

    SQL类军规

    1、SQL尽可能简单

    2、保持事务连接短小

    3、尽可能避免使用SP/Trigger/Function

    4、尽量不用Select *

    5、改写Or为IN()

    6、改写Or为Union

    7、避免负向查询和%前缀模糊查询

    8、Count不要使用在可Null的字段上面

    9、减少Count(*)

    10、Limit高效分页,SELECT * FROM message WHERE id > 9527 (or sub select) limit 10

    11、使用Union ALL 而不用Union

    12、分解链接,保证高并发

    13、Group By 去除排序

    14、同数据类型的列值比较

    15、Load Data导入数据,比Insert快20倍

    16、打散大批量更新,尽量凌晨操作

    约定类军规

    1、隔离线上线下

    2、禁止未经DBA认证的子查询

    3、永远不在程序段显式加锁

    4、表字符集统一使用UTF8MB4

    文章来源:https://www.slideshare.net/mysqlops/mysql-9838563
    上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理。
  • 上一篇:爱上Java和JVM的10大理由

    下一篇:7月编程语言榜:万年不变的前三,TS进前50

网站导航
Copyright(C)51Code软件开发网 2003-2018 , 沪ICP备16012939号-1