zoukankan      html  css  js  c++  java
  • 聚簇索引与非聚簇索引

    一、聚簇索引

    数据与索引放在一起,找到索引就找到数据

    二、非聚簇索引

    数据与索引存储分开   

    这里说的数据与索引一起还是分开指的是在btree叶子节点是否只存在索引。

    使用场景

    动作描述             使用聚簇索引     使用非聚簇索引

    列经常被分组排序         应                 应
    返回某范围内的数据         应                 不应
    一个或极少不同值         不应             不应
    小数目的不同值             应                 不应
    大数目的不同值             不应             应
    频繁更新的列             不应             应
    外键列                     应                 应
    主键列                     应                 应
    频繁修改索引列             不应             应

    在InnoDB中,只有主键是聚簇索引,如果没有主键,创建唯一键建立聚簇索引,如果没有唯一键,就隐式生成唯一键建立聚簇索引。

    聚簇索引和非聚簇索引一定要回表查询么?

    聚簇索引不需要回表查询,叶子节点存放索引和数据,所以在叶子节点就能获取整行数据。

    非聚簇索引,若查询语句要求的字段全部命中索引,就不用回表查询。否则需要。

  • 相关阅读:
    【线程退出】linux线程退出的几个函数
    Apache Doris编译安装记录
    你所不知道的java编程思想
    thinking in java知识小记(一)
    一个程序员的修炼之路
    解决linux不能使用chmod更改权限的问题
    centos6.5配置无线网络
    ubuntu16.04 server安装小记
    vim的基本使用方法
    微信之父张小龙经典演讲164页PPT:《微信背后的产品观》
  • 原文地址:https://www.cnblogs.com/ivy-xu/p/12539173.html
Copyright © 2011-2022 走看看