索引的原理
没有创建索引的时候,查询进行的是全表扫描
使用索引会形成一个索引的数据结构,比如二叉树
索引的代价
占用磁盘空间
如果对表进行 dml 会对索引进行维护,队速度有影响 (查询快、增删慢)
但在实际项目中,查询操作更多
索引的类型
主键索引(Primary key)
唯一索引 (UNIQUE) 某列的值不重复,可以考虑使用unique
普通索引 (INDEX)
全文索引 (FULLTEXT) 适用于MyISAM
一般开发中不使用mysql自带的全文索引,而是使用:全文搜索 Solr 和 ElasticSearch
索引的使用
添加索引
create [unique] index 索引名 on Tname (字段名)
alter table Tname add index 索引名 (字段名)
添加主键索引
alter table Tname add primary key (字段名)
删除索引
drop index 索引名 on table
alter table Tname drop primary key
查询索引
show index from Tname
show indexes from Tname
show keys from Tname
小结
应该为作为查询条件使用比较频繁的字段创建索引
唯一性太差、更新比较频繁、不会作为查询条件的字段不应该创建索引