zoukankan      html  css  js  c++  java
  • mysq优化二之索引最左前缀原理

    索引最左前缀原理

     示例:下面哪一条sql会走索引?

    下面是具体示例:

     

     插入的顺序和查询出来的数据顺序是不一样的,这里就涉及到底层的一些原理

    mysql是如何选择最优索引的

    插入数据时 page是怎么生成的呢? 

     插入第一行数据:

    插入第二行数据: 

     

     按照主键顺序插入

    插入第三条数据:

     目录项:

     

       

     

     联合索引

     

    根据bcd联合索引找到主键的值,然后拿着这个主键去主键索引中再找一次,我就可以定位到我要的数据

     

     

    下面的情况会不会走索引呢?

    上面的查询不会走索引。

    下面的情况会不会走索引呢?

    上面的查询会走索引。

    下面的情况是不会走索引的。

    但是下面的情况又会走索引了。

    如果不用select * 也会走索引的。

     虽然查找出来的记录是不完整的记录,但是这些记录已经包含了b字段,所以不需要再回表查询,直接返回b字段了。

    下面的情况也是可以走索引的。

     下面的情况会不会走索引?

     

     上面的情况走索引的话不需要排序,但是要回表;如果是全表扫描的话需要排序,但不需要回表

    我们对e字段创建索引

     下面的几种sql能走索引吗,1能 0不能

     

    abc会转为数字0,所以select 结果为1

     如果是数字的话会转为对应的数字,那么select就为0

  • 相关阅读:
    一行代码更改博客园皮肤
    fatal: refusing to merge unrelated histories
    使用 netcat 传输大文件
    linux 命令后台运行
    .net core 使用 Nlog 配置文件
    .net core 使用 Nlog 集成 exceptionless 配置文件
    Mysql不同字符串格式的连表查询
    Mongodb between 时间范围
    VS Code 使用 Debugger for Chrome 调试vue
    css权重说明
  • 原文地址:https://www.cnblogs.com/ckh2014/p/15478847.html
Copyright © 2011-2022 走看看