索引的理解:
1.在数据库系统中是一个排序的数据结构,以协助快速查询,更新数据库中表数据
2.需要数据库开辟空间存储索引,在插入和修改数据的时候花费较多的时间(数据变更需要建立或者重建索引)
3.如果使用函数或者like等索引就会失效(like以%或者_开头索引失效)
索引的类型:
1.单字段索引
对单个字段的索引是最常见,最简单的。
create index 索引名 on 表名(列名)
2.唯一索引
用于改善性能和保证数据的完整性,数据不允许重复。
create unique index 索引名 on 表名(列名)
3.组合索引
create index 索引名 on 表名(列名,列名)
1.单表数据太少,索引反而会影响速度。(不要加索引)
2.where后的条件,order by,group by等这样的过滤时,后面的字段最好加上索引。但不是索引越多越好,要适度。
3.联合查询和子查询等多表操作关联字段加索引。
4.不应该对包含大量NULL字段加索引,尽量对字段设置not null。
5.经常要进行增,改等操作的字段,不应该设置索引。索引的新建和重建会耗时间。
1.越小的数据类型通常越好,越小的数据类型通常在磁盘,内存和CPU缓存中只需要更少的空间,处理起来就会更快!
2.简单的数据类型更好,整形数据比字符处理开销更小,因为字符串更复杂。在mysql中,日期时间应该用日期和时间类型,不要使用字符串类型存储时间。
删除索引:
drop index 索引名 on 表名;
修改索引:
尽量不要修改索引,可以删掉重建。