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

      

  • 相关阅读:
    RabbitMQ集群
    RabbitMQ (十六) 消息队列的应用场景 (转)
    RabbitMQ (十五) 镜像集群 + HAProxy1.7.8 负载均衡
    RabbitMQ (十四) 普通集群
    RabbitMQ (十三) 集群+单机搭建(window)
    秋招_微盟_一面/二面/HR面
    秋招-腾讯云西子公司-一二面-11/16
    秋招-京东(补录)-面经-一面/二面/HR面
    秋招-腾讯补录-面经-12/10
    投递过程
  • 原文地址:https://www.cnblogs.com/ciade/p/5217140.html
Copyright © 2011-2022 走看看