mysql索引

一、MySQL索引

1.1索引的概念;

 

 

 

 

 

1.2 索引的分类

 

 

 

 

1.3创建索引和查询索引

/*
    创建索引
    CREATE [UNIQUE|FULLTEXT] INDEX 索引名称
    [USING 索引类型]  -- 默认是BTREE
    ON 表名(列名...);
*/
-- 为student表中的name列创建一个普通索引
CREATE INDEX idx_name ON student(NAME); 

-- 为student表中的age列创建一个唯一索引
CREATE UNIQUE INDEX idx_age ON student(age);

/*
    查询索引
    SHOW INDEX FROM 表名;
*/
-- 查询student表中的索引  (主键列自带主键索引)
SHOW INDEX FROM student;

-- 查询db4数据库中的product表 (外键列自带外键索引)
SHOW INDEX FROM product;

1.4添加索引和删除索引

/*
    ALTER添加索引
    -- 普通索引
    ALTER TABLE 表名 ADD INDEX 索引名称(列名);

    -- 组合索引
    ALTER TABLE 表名 ADD INDEX 索引名称(列名1,列名2,...);

    -- 主键索引
    ALTER TABLE 表名 ADD PRIMARY KEY(主键列名); 

    -- 外键索引(添加外键约束,就是外键索引)
    ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名);

    -- 唯一索引
    ALTER TABLE 表名 ADD UNIQUE 索引名称(列名);

    -- 全文索引
    ALTER TABLE 表名 ADD FULLTEXT 索引名称(列名);
*/
-- 为student表中score列添加唯一索引
ALTER TABLE student ADD UNIQUE idx_score(score);


-- 查询student表的索引
SHOW INDEX FROM student;

 

1.5索引的效率测试

 

 

 

 

 

 

 

 

 

 

 

 

1.6 索引的原理之磁盘存储

 

1.7 索引的原理之BTree

 

 1.8索引的原理之B+Tree

 

 

 

 1.9索引的总结

 

 

 

posted on 2021-02-18 23:06  LouisLin  阅读(71)  评论(0)    收藏  举报

导航