1. 程式人生 > >3.【MYSQL】索引

3.【MYSQL】索引

MYSQL索引

Mysql索引四種索引

主鍵索引   
	例如:alter table 表名 add primary key (列名);
	例如:id int unsigned primary key auto_increment
唯一索引   
    例如:create unique index 索引名  on 表名 (列表..);
普通索引
	例如:create index 索引名 on 表 (列1,列名2);
全文索引【MyISAM】引擎

Mysql查詢索引的方式

desc 表名 【該方法的缺點是: 不能夠顯示索引名.】
show index(es) from 表名
show keys from 表名

索引的代價

1.	佔用磁碟空間
2.	對dml操作有影響,變慢

複合索引左字首規則

1.左字首原則
2.like的關鍵字最前面不能使用 % 或者 _這樣的字元.如果一定要前面有變化的值,則考慮使用 全文索引->sphinx.
3.有OR查詢 就是要求使用的所有欄位,都必須建立索引, 我們建議大家儘量避免使用or 關鍵字
4.列型別是字串,一定要加引號否則不使用索引。

執行計劃

explain 【SQL語句】\G
例如:explain select * from dept where loc=‘aaa’\G
在這裡插入圖片描述

索引使用的情況查詢

show status like ‘Handler_read%’;

大家可以注意:
handler_read_key:這個值越高越好,越高表示使用索引查詢到的次數。
handler_read_rnd_next:這個值越高,說明查詢低效。