• 数据库个人经验


    1.尽量不在数据库中做运算
    2.控制单表数据量
    3.控制表身段苗条(字段数上限控制在20~50之间)
    4.平衡范式和冗余
    5.拒绝3B(大sql 大事务 大批量)
    6.用好数值字段类型
    7.尽可能将字符转换为数字
    8.避免使用NULL字段
    9.少用并拆分TEXT/BLOB
    10.不在数据库中存图片
    11.谨慎合理添加索引
    12.不在索引列做运算
    13.自增列或者全局ID做主键
    14.尽量不用外键
    15.SQL语句尽可能简单
    16.保持事务(连接)短小 事务/连接使用原则:即开即用,用完即关
    17.尽可能避免使用SP/TRIG/FUNC(存储过程/触发器/函数)
    18.尽量不用SELECT * ,叧取需要数据列
    19.改写OR为IN()
    20.改写OR为UNION
    21.避免负向查询和% 前缀模糊查询
    避免负向查询
    NOT、!=、<>、!<、!>、NOT EXISTS、NOT IN、NOT LIKE等 
    避免 % 前缀模糊查询
    MySQL> select * from post WHERE title like ‘北京%' ; (0.01 sec)
    MySQL> select * from post WHERE title like ' % 北京%' ; (3.27 sec)
    22.COUNT(*)的几个例子
    COUNT(*)=count(1)
    COUNT(0)=count(1)
    COUNT(1)=count(100 )
    COUNT(*)!=count(col)
    23.减少COUNT(*)
    24.LIMIT高效分页
    示例:
    MySQL> select sql_no_cache * from post limit 10,10;
    MySQL> select sql_no_cache * from post limit 20000,10;
    MySQL> select sql_no_cache * from post limit 80000,10;
    MySQL> select sql_no_cache id from post limit 80000,10;
    MySQL> select sql_no_cache * from post WHERE id>=323423 limit 10;
    MySQL> select * from post WHERE id >= ( select sql_no_cache id from post limit 80000,1 ) limit 10 ;
    25.用UNION ALL 而非 UNION
    26.分解联接保证高并发
    27.GROUP BY 去除排序
    28.同数据类型的列值比较 原则:数字对数字,字符对字符
    29.Load data 导数据
    30.尽量不用 INSERT ... SELECT
    31.打散大批量更新 大批量更新凌晨操作,避开高峰
    32.隔离线上线下
    原则:线上连线上,线下连线下
    实时数据用real库
    模拟环境用sim库
    测试用qa库
    开发用dev库
    33.禁止未经DBA确认的子查询
    34.永远不在程序端显式加锁
    35.统一字符集为UTF8
    36.统一命名规范
    37.注意避免用保留字命名
    
     
    

      

  • 相关阅读:
    [COI2007] Patrik 音乐会的等待 单调栈
    [NOI2012]随机数生成器 矩阵乘法
    流程控制主while,for,python画金字塔,画9*9乘法表
    VS第一天(一堆错误的错误示范)
    markdown插入表格语法
    格式化输出,基本运算符,流程控制主if
    jupyter notebook的插件安装及文本格式修改
    7个好用的社交分享按钮代码片段
    标签页tab.js 在栏目之间切换,局部变化
    详解 CSS 属性
  • 原文地址:https://www.cnblogs.com/ciade/p/5217140.html
Copyright © 2020-2023  润新知