Mysql_索引_刘益长
1.索引介绍
1.1、什么是索引?
一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。
1.2、为什么要有索引呢?
索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能 非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。 索引优化应该是对查询性能优化最有效的手段了。
索引能够轻易将查询性能提高好几个数量级。 索引相当于字典的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页去查。
2.普通索引:
2.1、创建索引:
# 1.1、创建索引:单独创建索引 CREATE INDEX index_name ON emp(emp_name);
2.2、修改时添加索引:
# 1.2、创建索引:修改表结构时创建索引 ALTER TABLE emp ADD INDEX index_salary
2.3、创建表时指定索引:
# 1.3、创建索引:创建表时的时候创建索引 CREATE TABLE IF NOT EXISTS article ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(30), content VARCHAR(50), dt DATE, PRIMARY KEY(id), INDEX index_title (title) );
2.4、删除索引
# 删除索引 DROP INDEX index_name ON emp;
3.唯一索引
3.1、创建唯一索引:
# 3.1、单独创建唯一索引:列的值必须唯一 CREATE UNIQUE INDEX index_name ON emp(emp_name);
3.2、修改时添加唯一索引:
# 3.2、修改表时创建唯一索引 ALTER TABLE emp ADD UNIQUE INDEX index_name (emp_name);
3.3、创建表时指定唯一索引:
# 3.3、创建表时创建唯一索引 CREATE TABLE IF NOT EXISTS emp2 ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(30), content VARCHAR(50), dt DATE, PRIMARY KEY(id), UNIQUE INDEX index_title (title) );
3.4、删除唯一索引
# 删除索引 DROP INDEX index_name ON emp;
4.组合索引
4.1、创建组合索引:
# 4.1、组合索引 CREATE INDEX index_ct ON article(content,dt);
4.2、修改时添加组合索引:
# 4.2、修改表时创建唯一索引 ALTER TABLE emp2 ADD INDEX index_tc (title,content);
4.3、创建表时指定组合索引:
# 4.3、创建表时创建唯一索引 CREATE TABLE IF NOT EXISTS emp3 ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(30), content VARCHAR(50), dt DATE, PRIMARY KEY(id), INDEX index_tc (title,content) );
4.4、删除唯组合索引
# 删除索引 DROP INDEX index_name ON emp;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~