zoukankan      html  css  js  c++  java
  • Mysql 索引优化

    单表  范围查询 后面的索引会失效

    双表  左右连接建立索引互相使用

    三表   用小结果集驱动大表结果, 先优化括号里面的SQL, 保证JOIN被驱动的表上ON字段有索引

    索引失效(常见原因)

    全职匹配
    
    最佳左前法则  如果是复合索引,确保最左侧索引列一定要有  若无,全表扫描
    
    索引列上不计算 不在索引列上做任何操作, 计算,函数,(自动or手动)类型转换,会导致索引失效还全表扫描 比如 left()
    
    范围之后全失效 存储引擎不能使用索引中范围条件右边的列 索引失效 比如复合A, B C3列 若条件B > 20 则 C列失效
    
    尽量使用覆盖索引,减少select *
    
    在使用!= 或者 <>的时候无法使用索引,会导致全表扫描
    
    is null, is not null也无法使用索引
    
    like百分加右边 like 以通配符开头 ‘%sdf’, 索引失效,全表扫描
    
    字符串不加单引号,索引失效
    
    少用or, 用他来连接时索引失效

    索引优化

    单值索引,尽量选择对query过滤好的索引

    组合索引,过滤性比较好的字段放在索引前面, 选择索引列时尽量包含where更多的字段

    你对SQL的优化怎么试.

    1 观察跑1天,看看生产慢的SQL

    2 开启慢查询日志,比如超过5秒的慢sql抓取出来

    3 explain+慢SQL分析

    4 show profile 查询SQL在Mysql服务器的执行细节

    5 DBA进行SQL数据库服务器的参数调优

  • 相关阅读:
    手机网络制式常识
    合并两个有序数组a和b到c
    N皇后问题
    数独求解
    ARM处理器模式
    ARM异常中断处理
    国风·召南·野有死麕
    八大排序算法
    1045 Favorite Color Stripe (最长不下降子序列 LIS 或最长公共子序列 LCS)
    1066 Root of AVL Tree (模拟AVL建树)
  • 原文地址:https://www.cnblogs.com/eason-d/p/9220129.html
Copyright © 2011-2022 走看看