介绍:
索引是通过某种算法,构建出一个数据模型,用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速达到一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间。
分类
索引是存储引擎用来快速查找的记录的一种数据结构,按照实现的方式类分,主要有HASH索引和B+TREE索引
创建索引
单列索引:一个索引只包含单个列,但一个表中可以有多个单列索引
普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和控制,纯粹为了查询数据快一点。
单列索引
普通索引
创建操作
例如:
CREATE DATABASE mydb5;
USE mydb5;
-- 方式一 -创建表的时候直接指定
CREATE TABLE student(
sid INT PRIMARY KEY,
card_id VARCHAR(50),
name VARCHAR(50),
gender VARCHAR(20),
age INT,
birth DATE,
phone_num VARCHAR(20),
score DOUBLE,
INDEX index_name(name) -- 给name列创建索引
);
SELECT * FROM student WHERE name='张三';
-- 第二种方式 - 直接创建
CREATE INDEX index_gender ON student(gender);
-- 第三种方式 - 修改表结构(添加索引)
ALTER TABLE student ADD INDEX index_age(age);
查看操作
例如:
-- 1.查看数据库所有索引
SELECT * FROM mysql.innodb_index_stats a WHERE a.database_name='mydb5';
-- 2.查看表中所有索引
SELECT * FROM mysql.innodb_index_stats a WHERE a.d