什么是MySQL索引
MySQL索引是MySQL中一类用来加快搜索数据速度的数据结构的统称。索引保存两类数据,一是数据表中一列或者若干列的值,二是存储这些值对应数据页的物理地址的指针。MySQL的数据存在于磁盘当中,如果没有索引,那么需要将所有数据导入到内存当中,一条一条的扫描。除了时间外,I/O也会占据大量时间。有了索引,查找时就可以根据某些列的值,快速准确找到数据的物理地址,从而导入数据。
索引虽然一般能能加快数据的访问速度,但是也不是完美无缺的。因为索引存储也存储在磁盘上,为了维护索引同样需要一定的时间和空间开销,例如给索引项排序。如果错误地使用索引,反而会造成搜索效率的下降。因此如何使用索引是MySQL需要掌握的重要技能。
MySQL索引的基础语法
MySQL中有多种索引,这里我们以普通索引为例,其他索引的相关语法,会在之后的文章中继续介绍。
1. 创建索引
有三种创建索引的做法,我们可以在建表的时候直接创建索引:
create table t_employee_10( id INT Primary key NOT NULL, employeename varchar(50) NOT NULL, age INT NOT NULL, gender varchar(10) NOT NULL, telephone varchar(10) NOT NULL, address varchar(50) NOT NULL, salary FLOAT NOT NULL, index telephoneIndex(telephone) -- 在telephone上创建索引telephoneIndex )
也可以为已存在的表添加索引:
create index addressIndex on t_employee_10(address); -- 为address列添加索引
Alter语法也可以为已存在的表添加索引:
ALTER TABLE t_employee_10 ADD INDEX salaryIndex(salary);
2. 删除索引
删除索引也有两种写法。第一种直接使用DROP关键字:
DROP INDEX salaryIndex on t_employee_10;
第二种使用ALTER关键字:
ALTER table t_employee_10 DROP INDEX telephoneIndex;
3. 查看索引
使用show关键字可以查看当前表中所有的索引:
SHOW INDEX FROM t_employee_10;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现