第十三周学习笔记
本周主要讲解了索引应用的技巧与注意事项。
一、索引的应用
索引的优点:索引的查询比全表查询快。原因如下:
(1)索引的数据量比全表的少,需扫描的数据也就少。
(2)索引对字段已经排序,可以进行二分法查询。
缺点:索引也不是越多越好的。如果我们对每一列都建立索引,那么需要的额外存储空间将加大,对于插入、更新等操作的速度将降低,因为这些操作都要维护索引,每插入一条,那么需要在每个索引都插入一条,这样效率就降低了。
由以上可得出结论:我们只要对经常查询的字段建索引,不建无用的索引。由于索引降低插入操作速度,因此可遵循以下原则:
(1)查询频繁,插入少:建索引(一般网站数据都是)
(2)查询少,插入频繁的或字段数据范围小的(如:性别):不建索引
(3)查询多,插入也多:看需求
二、索引的使用
(1)建立单列索引
CREATE INDEX index_name ON tb_Patient(columnName ASC);
(2)建立联合索引
CREATE INDEX index_name ON tb_Patient(columnName1 asc,columnName2 DESC);
(3)删除索引
DROP index_name;
(4)重建索引
REINDEX tb_Patient;
REINDEX indexName1,indexName2;
三、索引的注意事项
对于联合索引,如果所查询字段不包含优先列,那么将不使用这索引。对索引插入是在索引尾部插入的,所以在插入次数较多的情况下应重建索引。触发索引的关键包括但不限于select、where、join、order by(like无效)and、or连接词对索引来说,前后顺序无关。
总结如下:
1.首先数据量小的表不需要建立索引,因为小的表即使建立索引也不会有大的用处,还会增加额外的索引开销
2.不经常引用的列不要建立索引,因为不常用,即使建立了索引也没有多大意义
3.经常频繁更新的列不要建立索引,因为肯定会影响插入或更新的效率
4.索引并不是一劳永逸的,用的时间长了需要进行整理或者重建
5.索引在数据库中是以表的形式存储的,太多的索引一定是增加开销的,还有,前面说的,索引在数据库中是以表的形式存储的,频繁更新(插入)的的字段不要建立索引,因为在字段中做更新(插入)操作后,索引也会更新的,这样的话效率会大大降低。
6.索引当然不是越多越好,够用就是最好,如果建立过多的索引,那你保存的速度就会下降,如果你的数据库写特别频繁,那就需要注意了。