Mysql三天入门(三) 索引

概述

  • 索引就相当于一本书的目录,通过目录可以快速的找到对应的资源。
    • 在数据库方面,查询一张表的时候有两种检索方式:
      • 第一种方式:全表扫描
      • 第二种方式:根据索引检索(效率很高)
    • 索引为什么可以提高检索效率呢?
      • 其实最根本的原理是缩小了扫描的范围。

索引原理

  • 索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始,然后读完整个表直到它找出相关的行。表越大,花费时间越多。对于一个有序字段,可以运用二分查找(Binary Search),这就是为什么性能能得到本质上的提高。
  • MYISAM和INNODB都是用B+Tree作为索引结构
    (主键,unique 都会默认的添加索引)

索引的分类

  1. 单一索引:给单个字段添加索引
  2. 复合索引:给多个字段联合起来添加一个索引
  3. 主键索引:主键上会自动添加索引
  4. 唯一索引:有unique约束的字段会自动添加索引

应用

  • 创建索引:
      create index 索引名称 on 表名(字段名);
  • 查看索引
      show index from 表名;
  • 使用索引
      explain select sal from emp where sal > 1500;
      条件中的sal使用了索引
  • 删除索引:
       drop index 索引名称 on 表名;
原文地址:https://www.cnblogs.com/thrseven/p/15120846.html