MySQL索引概念与测试案例

  • 索引分类:主键索引、唯一索引、普通索引、全文索引、组合索引。

问题:

(1)MySQL默认会对哪些列创建索引?

         主键和唯一键。

(2)如果创建表时,没有创建主键和唯一健,是不是就没有主键索引了?

主键索引不是这个意思,系统在进行数据组织的时候,没有主键,也会有个key值的。

key:(下面这几种情况都叫主键索引)

如果主键存在,则存主键;

如果主键不存在,但唯一键存在;

如果主键和唯一健都不存在,则存6个字节的rowid。

  • 索引的优点:减少服务器需要扫描的数据量、帮助服务器避免排序和临时表、将随机io变成顺序io

  • 索引的用处:
    快速查询匹配Where子句的行
    从consideration中消除行,如果可以在多个索引之间进行选择,mysql通常会使用找到最少行的索引
    如果表具有多列索引,则优化器可以使用索引的任何最左前缀来查询行
    当有表连接的时候,从其他表检索行数据
    查询特定索引列的min或max值
    如果排序或分组时在可用索引的最左前缀上完成的,则对表进行排序和分组
    在某些情况下,可以优化查询以检索值而无需查询数据行
  • 索引面试常问哪些问题
    索引分类、索引数据结构、索引数据结构的选择、回表、最左匹配、索引覆盖、索引下推、索引优化、索引失效、聚簇索引和非聚簇索引、存储引擎、索引匹配方式、索引具体的优化点,我什么时候加索引、索引什么时候执行

猜你喜欢

转载自www.cnblogs.com/scorpio-cat/p/12661379.html