mysql高级知识总结

一、索引

(1)什么是索引

索引index是帮助MySQL高效获取数据的一种数据结构。

可以看出,索引其实就是BTREE。

 (2)创建索引

create index  索引名 on 表名(字段)

例如:

CREATE INDEX idx_blogurl ON blog_image(image_url)

(3)查看索引

show index from 表名

例如:

SHOW INDEX FROM blog_image

(4)删除索引

drop index 索引名 on 表名

例如:

DROP INDEX idx_blogurl ON blog_image

二、explain优化

使用explain可模拟优化器执行SQL查询语句,分析语句的性能。 

 id:表示select执行的顺序

select_type:表示查询的类型,simple简单查询,primary多层查询的最外层,subquery包含子查询,derived有临时表,union联合查询。

table:表

type:查询类型,最重要(system>const>eq_ref>ref>range>index>all)

possible_keys:可能出现的索引

key:使用的索引

key_len:多用于复合索引,值越大,精度越高,性能越差

ref:索引的值

rows:可能读取的行数

extra:其他,最好不要出现,using filesort,using temorary代表会出现文件排序和临时表,对性能影响很大。

三、索引失效

(1)左前缀法则,最左的不能没有,中间不能断,从哪里断,后面的索引就失效了。

例如:

craete index idx_abcd

查询时不从a开始,或中间有断开,就会全部失效或部分失效。

(2)不能有对索引列的任何操作

(3)条件之后全失效

(4)减少使用select *

(5)不等 isnull isnotnull 会失效

(6)除aa%外,like索引全失效

(7)or索引失效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值