zoukankan      html  css  js  c++  java
  • MySQL数据库开发的36条军规

    来自一线的实战经验,主要针对DBA和后端开发人员,总是在灾难发生后,才想起容灾的重要性;总是在吃过亏后,才记得曾经有人提醒过。文末是详细的视频讲解和PD下载
    一、核心军规

    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
  • 相关阅读:
    SEO高手和SEO屌丝的八个区
    【织梦免费模板】防火涂料网站模版
    利用火车头采集A67手机电影教程一
    SEO高级技巧
    .NET代码设计简单规范
    JAVA 和.NET在安全功能的比较
    poi实现excel数据的导入和导出
    eclipse复制bpmn文件到idea下乱码问题处理
    分账接收方与原请求方不一致,微信分账总结
    Java List<T> 去重
  • 原文地址:https://www.cnblogs.com/emaes/p/12653964.html
Copyright © 2011-2022 走看看