索引 index
1.索引本身也会占用磁盘空间 索引只会对创建索引的字段生效
2.索引适合创建在常用于作为查询条件的的字段上
3.索引不适合放在经常增删改的字段
4.索引会印象dml(增删改)等操作的运行效率 ,因为进行这些操作之后可能需要对索引进行重新维护
5.虽然索引会导致dml操作的运行效率变低,但是索引使查询操作更便利了,而日常开发中查询的需求占了
90%的操作
6.没有索引的时候会进行全表扫描,获取到所有满足条件的内容 所有效率比较低
创建索引后会形成索引的数据结构,二叉树,B树等
1.普通索引 (用的最多)
如果索引字段可能会重复 则使用普通索引
①create index 索引名 on 表名 (索引字段)
②alter table 表 add index 表(字段)
2.主键索引
①建表时设置主键
②alter table 表 add primary key(索引字段)
设置主键就自动存在的索引(primary key)
3.唯一索引
唯一索引用于字段不可能重复
unique 关键字修饰
create unique index 索引名 on 表(索引字段)
4.全文索引
(FULLTEXT)[适用于MyISAM]开发中不用全文索引
开发中考虑使用:全文搜索Solr和 ElasticSearch (ES)
删除索引
drop index 要删的索引名 on 表
删除主键索引
alter table 表 drop primary key
修改索引
先删后加
查询索引
show index from 表名
show indexes from 表名
show keys from 表名
desc 表名 (不详细 不推荐)
index.sql 索引命令文件
索引名不可以重复