索引
没有缩影为什么会慢?
SELECT * FROM emp
WHERE id = 9
进行全盘扫描,找到了9后依然会往下扫完
使用索引为什么会快?
使用索引后,会形成一个索引的数据结构,比如二叉树
1.占用磁盘空间
2.对update delete insert语句的速度有影响
索引类型
1.主键索引,主键自动的为主索引(类型primary key)
2.唯一索引(unique)
3.普通索引(index)
4.全文索引(fulltext)(使用与myisam)
添加索引
CREATE TABLE my_temp(
id INT,
`name` VARCHAR(32));
CREATE UNIQUE INDEX id_index ON my_temp(id); --唯一索引
CREATE INDEX id_index ON my_temp(id); --普通索引
ALTER TABLE my_temp ADD INDEX id_index(id); --普通索引
SHOW INDEXES FROM my_temp
删除索引
DROP INDEX id_index ON my_temp --删除普通索引
ALTER TABLE my_temp DROP PRIMARY KEY --删除主键索引
修改索引
先删除,再添加
查询索引
SHOW INDEX FROM my_temp
SHOW INDEXES FROM my_temp
SHOW KEYS FROM my_temp
DESC my_temp
哪些列上适合使用索引
1.频繁地作为查询条件的字段
2.唯一性太差的字段不适合创建索引,即使作为查询条件
3.更新非常频繁的字段不适合创建索引
4.不会出现在where子句中的字段不该创建索引