索引

索引优劣

1、无索引:SELECT 语句效率低

2、有索引:SELECT 语句效率高,但磁盘占用较多空间,影响 INSERT、DELETE、UPDATE 语句效率

3、SELECT 操作一般占 90%,INSERT、DELETE、UPDATE 操作占 10%

 

索引类型

1、主键索引:PRIMARY KEY

2、唯一索引:UNIQUE

3、普通索引:INDEX

4、全文索引:FULLTEXT

 

事项

1、主键自动成为主键索引

2、若某列的值不重复,优先使用唯一索引,否则使用普通索引

3、全文索引适用于 MyISAM 引擎,一般不使用

4、全文搜索使用 Solr 或 ElasticSearch

 

创建索引

1、添加唯一索引

(1)建表时添加

(2)

CREATE UNIQUE INDEX 索引名 ON 表名 (列名);

(3)

ALTER TABLE 表名 ADD UNIQUE INDEX 索引名 (列名);

2、添加普通索引

(1)

CREATE INDEX 索引名 ON 表名 (列名);

(2)

ALTER TABLE 表名 ADD INDEX 索引名 (列名);

3、添加主键索引

(1)建表时添加

(2)

ALTER TABLE 表名 ADD PRIMARY KEY (列名);

4、创建规则

(1)频繁作为查询条件的字段,应该创建索引

(2)唯一性差的字段,即使频繁作为查询条件,不适合单独创建索引

(3)更新频繁的字段,不适合创建索引

(4)不出现在 WHERE 子句的字段,不适合创建索引

 

删除索引

1、删除普通索引

ALTER TABLE 表名 DROP INDEX 索引名 ON 表名;

2、删除主键索引

ALTER TABLE 表名 DROP PRIMARY KEY;

3、删除唯一索引

ALTER TABLE 表名 DROP UNIQUE INDEX 索引名 ON 表名;

 

修改索引:先删除索引,后添加索引

 

查询索引

SHOW INDEX FROM 表名;
SHOW INDEXES FROM 表名;
SHOW KEYS FROM 表名;
DESC 表名;

 

索引失效

1、模糊查询中,以 % 开始

2、使用 OR,因为 OR 要求两边字段都需要有索引,才生效

3、使用复合索引,不使用最左侧的字段进行查询

(1)复合索引:两个及以上的字段,联合添加一个索引

4、WHERE 子句中,包含索引列,且索引列参与运算

5、WHERE 子句中,包含索引列,且索引列使用函数

posted @   半条咸鱼  阅读(71)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示