zoukankan      html  css  js  c++  java
  • 数据库个人经验

    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.注意避免用保留字命名
    
     
    

      

  • 相关阅读:
    MV*模式的个人理解
    Unlink of file '.git/objects/pack/pack-***.pack' failed. Should I try again? (y/n) (转)
    不定宽高元素的水平垂直居中
    判断是否在微信浏览器中
    HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)(转)
    清除inline-block元素间距
    rs485多主
    基于状态机的单片机按键短按长按功能的实现
    深入理解FIFO(包含有FIFO深度的解释)——转载
    传递指针的指针(错误的例子)
  • 原文地址:https://www.cnblogs.com/ciade/p/5217140.html
Copyright © 2011-2022 走看看