mysql高级学习之索引的优劣势及规则使用
作者:m0_55886240 时间:2024-01-13 16:21:33
一、索引的优劣势
优点:可以快速的检索 、可以加快分组和排序
缺点: 占用储存空间、降低数据表的修改操作
二、索引的分类
主键索引 | 即主索引,根据主键 pk_clolum(length)建立索引,不允许重复,不允许空值 |
---|---|
唯一索引 | 用来建立索引的列的值必须是唯一的,允许空值 |
普通索引 | 用表中的普通列构建的索引,没有任何限制 |
全文索引 | 用大文本对象的列构建的索引 |
全文索引 | 用大文本对象的列构建的索引; |
组合索引 | 用多个列组合构建的索引,这多个列中的值不允许有空值。 |
三、使用索引的规则
1、适合建立索引的情况
主键自动建立唯一索引;
经常作为查询条件在 WHERE 或者 ORDER BY 语句中出现的列要建立索引;
作为排序的列要建立索引;
查询中与其他表关联的字段,外键关系建立索引;
高并发条件下倾向组合索引;
用于聚合函数的列可以建立索引,例如使用了 max(column_1)或者count(column_1)时的 column_1 就需要建立索引。
2、不适合建立索引的情况
经常增删改的列不要建立索引;
有大量重复的列不建立索引;
表记录太少不要建立索引。
3、索引失灵的情况
在组合索引中不能有列的值为 NULL,如果有,那么这一列对组合索引就是无效的;
LIKE 操作中,'%aaa%'不会使用索引,也就是索引会失效,但是‘aaa%'可以使用索引;
在索引的列上使用表达式或者函数会使索引失效;
在查询条件中使用不等于,包括<符号、>符号和!=会导致索引失效;
在查询条件中使用 IS NULL 或者 IS NOT NULL 会导致索引失效;
字符串不加单引号会导致索引失效;
在查询条件中使用 OR 连接多个条件会导致索引失效,除非 OR 链接的每个条件都加上索引;
如果排序的字段使用了索引,那么 select 的字段也要是索引字段,否则索引失效;
尽量不要包括多列排序,如果一定要,最好为这队列构建组合索引。
四、关于索引的SQL
1、创建表的时候添加索引
-- 创建表的时候添加索引
-- INDEX 关键词
-- myindex 索引的名称自己起的
-- (username(16))添加到哪一个字段上
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX myindex (username(16))
);
2、创建表过后添加索引
-- 添加索引
-- myindex索引的名字(自己定义)
-- mytable 表的名字
CREATE INDEX myindex ON mytable(username(16));
或者
ALTER TABLE mytable ADD INDEX myindex(username);
3 查看索引
-- mytable 表的名字
show index FROM mytable;
4、删除索引
-- myindex索引的名字(自己定义)
-- mytable 表的名字
DROP INDEX myindex ON mytable;
或者
ALTER TABLE mytable DROP INDEX myindex;
总结
来源:https://blog.csdn.net/m0_55886240/article/details/114576113
标签:mysql,高级,索引
0
投稿
猜你喜欢
用Python绘制一个仿黑洞图像
2021-10-03 03:07:57
教你制作IBM LOGO的方法
2007-10-23 13:34:00
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2023-02-24 06:31:23
Python的列表推导式你了解吗
2022-08-13 05:30:41
Windows10安装Oracle19c数据库详细记录(图文详解)
2024-01-23 20:13:15
python点云地面点滤波(Progressive Morphological Filter)算法介绍(PCL库)
2021-12-23 00:38:29
SQL Server触发器及触发器中的事务学习
2024-01-27 08:48:02
MySQL中如何正确存储IP地址
2024-01-29 13:34:34
Pandas读取并修改excel的示例代码
2022-08-18 23:27:34
Python from import导包ModuleNotFoundError No module named找不到模块问题解决
2023-07-27 20:06:53
python同时给两个收件人发送邮件的方法
2021-10-23 07:31:36
运用Python的webbrowser实现定时打开特定网页
2021-12-15 23:07:02
Python中搜索和替换文件中的文本的实现(四种)
2022-04-23 01:03:39
Python 内置高阶函数详细
2022-07-26 11:02:07
flask上传作品之dbm操作的实现
2022-06-29 15:25:41
php环境下利用session防止页面重复刷新的具体实现
2023-11-14 08:51:45
MySQL模糊查找like通配符使用(小白入门篇)
2024-01-17 19:02:53
Python调用两个机器人聊天的实战
2021-09-30 23:10:52
定义列表: DL DT DD
2009-05-06 13:08:00
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2023-04-30 00:11:19