千家信息网

MySQL中索引的语法以及索引的优缺点

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要讲解了"MySQL中索引的语法以及索引的优缺点",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"MySQL中索引的语法以及索引的优缺点"吧!一
千家信息网最后更新 2026年11月04日MySQL中索引的语法以及索引的优缺点

这篇文章主要讲解了"MySQL中索引的语法以及索引的优缺点",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"MySQL中索引的语法以及索引的优缺点"吧!

一、MySQL中索引的语法

创建索引

在创建表的时候添加索引

CREATE TABLE mytable(      ID INT NOT NULL,       username VARCHAR(16) NOT NULL,      INDEX [indexName] (username(length))  );

在创建表以后添加索引

ALTER TABLE my_table ADD [UNIQUE] INDEX index_name(column_name);或者CREATE INDEX index_name ON my_table(column_name);

注意:

1、索引需要占用磁盘空间,因此在创建索引时要考虑到磁盘空间是否足够

2、创建索引时需要对表加锁,因此实际操作中需要在业务空闲期间进行

根据索引查询

具体查询:SELECT * FROM table_name WHERE column_1=column_2;(为column_1建立了索引)
或者模糊查询SELECT * FROM table_name WHERE column_1 LIKE '%三'SELECT * FROM table_name WHERE column_1 LIKE '三%'SELECT * FROM table_name WHERE column_1 LIKE '%三%'
SELECT * FROM table_name WHERE column_1 LIKE '_好_'
如果要表示在字符串中既有A又有B,那么查询语句为:SELECT * FROM table_name WHERE column_1 LIKE '%A%' AND column_1 LIKE '%B%';
SELECT * FROM table_name WHERE column_1 LIKE '[张李王]三'; //表示column_1中有匹配张三、李三、王三的都可以SELECT * FROM table_name WHERE column_1 LIKE '[^张李王]三'; //表示column_1中有匹配除了张三、李三、王三的其他三都可以
//在模糊查询中,%表示任意0个或多个字符;_表示任意单个字符(有且仅有),通常用来限制字符串长度;[]表示其中的某一个字符;[^]表示除了其中的字符的所有字符
或者在全文索引中模糊查询SELECT * FROM table_name WHERE MATCH(content) AGAINST('word1','word2',...);

删除索引

DROP INDEX my_index ON tablename;或者ALTER TABLE table_name DROP INDEX index_name;

查看表中的索引

SHOW INDEX FROM tablename

查看查询语句使用索引的情况

//explain 加查询语句explain SELECT * FROM table_name WHERE column_1='123';

二、索引的优缺点

优势:可以快速检索,减少I/O次数,加快检索速度;根据索引分组和排序,可以加快分组和排序;

劣势:索引本身也是表,因此会占用存储空间,一般来说,索引表占用的空间的数据表的1.5倍;索引表的维护和创建需要时间成本,这个成本随着数据量增大而增大;构建索引会降低数据表的修改操作(删除,添加,修改)的效率,因为在修改数据表的同时还需要修改索引表;

三、索引的分类

常见的索引类型有:主键索引、唯一索引、普通索引、全文索引、组合索引

1、主键索引:即主索引,根据主键pk_clolum(length)建立索引,不允许重复,不允许空值;

ALTER TABLE 'table_name' ADD PRIMARY KEY pk_index('col');

2、唯一索引:用来建立索引的列的值必须是唯一的,允许空值

ALTER TABLE 'table_name' ADD UNIQUE index_name('col');

3、普通索引:用表中的普通列构建的索引,没有任何限制

ALTER TABLE 'table_name' ADD INDEX index_name('col');

4、全文索引:用大文本对象的列构建的索引(下一部分会讲解)

ALTER TABLE 'table_name' ADD FULLTEXT INDEX ft_index('col');

5、组合索引:用多个列组合构建的索引,这多个列中的值不允许有空值

ALTER TABLE 'table_name' ADD INDEX index_name('col1','col2','col3');

*遵循"最左前缀"原则,把最常用作为检索或排序的列放在最左,依次递减,组合索引相当于建立了col1,col1col2,col1col2col3三个索引,而col2或者col3是不能使用索引的。

*在使用组合索引的时候可能因为列名长度过长而导致索引的key太大,导致效率降低,在允许的情况下,可以只取col1和col2的前几个字符作为索引

ALTER TABLE 'table_name' ADD INDEX index_name(col1(4),col2(3));

表示使用col1的前4个字符和col2的前3个字符作为索引

感谢各位的阅读,以上就是"MySQL中索引的语法以及索引的优缺点"的内容了,经过本文的学习后,相信大家对MySQL中索引的语法以及索引的优缺点这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

索引 字符 查询 优缺点 语法 组合 数据 空间 普通 全文 多个 情况 数据表 语句 学习 排序 检索 内容 字符串 成本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网高科技 疫情对互联网科技公司影响 鑫亿盛互联网科技 狮子座互联网科技有限公司 菲比寻常互联网科技 科技赋能互联网健康 现代互联网科技股 互联网科技有哪些公司 华夏恒生科技与互联网科技 四川慕妮娅互联网科技有限公司 互联网数据科技专业 世界互联网领先科技成果获奖 上海科技产业互联网平台 互联网科技实习生岗位 广州富喜互联网络科技 银川新华互联网科技学校是国营吗 西安左小互联网科技有限公司 杭州融税互联网科技有限公司 互联网科技对化妆品行业 青岛互联网科技园 互联网科技股 博彦科技互联网金融 深圳前海聚择互联网科技有限公司 崇明区互联网教育科技诚信经营 互联网科技人工智能实验室 深圳艾果互联网通讯科技 滨湖区互联网智能科技产品有哪些 互联网方面的科技前沿 上海同邻互联网科技有限公司规模 全球科技与互联网公司市值变化
0