zoukankan      html  css  js  c++  java
  • mysql-为什么会选择错误的索引(10)

    为什么:

         mysql执行一条query语句,按步骤来就是建立连接-》词法分析-》语法分析-》优化器-》执行器-》innodb引擎。这里的问题出在优化器这里,优化器的其中一个作用就是执行计划的生成以及索引的选择。我们知道优化器选择索引有几个指标:扫描的行数,是否使用临时表,是否排序。我遇到的情况因为没使用排序可以只考虑扫描行数的问题,mysql统计扫描行数是采用的采样统计的方式取做统计,所以如果你的表数据平常不断地删除历史数据和新增数据,就会导致采样统计不准确。至于为什么要采样统计,因为一行行统计代价太高。

    怎么解决:

         解决方案有使用force index强行选择一个索引;修改sql语句,引导mysql使用我们期望的索引;新建更合适的索引或者删除误用的索引

  • 相关阅读:
    对于 redux 的一些理解-1.基础
    css 优化
    HTML 理解标签
    css 理解盒模型
    json2.js JSON解析程序
    DOM 核心
    居中
    Director.js
    jquery-2.0.3 源码分析 整体架构
    Zookeeper安装
  • 原文地址:https://www.cnblogs.com/enchaolee/p/11696860.html
Copyright © 2011-2022 走看看