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
  • 相关阅读:
    JQuery 快速入门一篇通
    Winform 显示Gif图片
    MD5编码工具类 MD5Code.java
    Asp.Net 上传图片并生成高清晰缩略图
    winform时钟c#代码
    PHP面试题汇总
    PHP条件语句语法与示例
    Android声音播放实例代码
    html和js基础功能代码备份
    纯C#实现屏幕指定区域截屏
  • 原文地址:https://www.cnblogs.com/emaes/p/12653964.html
Copyright © 2011-2022 走看看