索引设计
2021-07-11 本文已影响0人
Crud仔
索引设计
在表结构设计完成后,索引设计是数据访问性能的关键要素。
索引的建立必须慎重,项目组对每个索引的必要性都应该经过仔细分析,要有建立的依据。
合适的索引可以成倍提升数据库性能,但过量的索引也会导致数据库性能下降,索引创建总体考量参见如下:
1.原则上每个表都必须要有主键,主键索引在建立的时候一定要明确的指定名称,不能让系统默认建立主键索引;
2.根据表的大小创建索引,原则上数据量超过1000的须有索引;
3.索引应该建在选择性高的字段上;
4.索引应该建在小字段上;
5.在构建索引时,应尽可能地多收集当前业务及未来业务的数据读取需求;
6.创建索引应有明确的目标,且新建索引无法与当前的其他索引合并优化;
7.尽量不使用外键保障数据的一致性,由应用程序保证数据约束,如有外键,则外键上必须有索引;
8.创建索引时需要建立数据查询与数据修改之间的速度平衡;
9.组合索引的列数量尽可能不要超过3列;
10.控制一个表的索引数量,使得一个表的索引数量尽量小于五个;
11.常用于(子)查询的表应建立索引;
12.经常与其他表进行连接的表,在连接字段上应该建立索引,但仍须在恰当的列上建立;
13.经常在where子句中的出现字段,特别是大表的字段,须评估建立索引;
14.对于组合索引,根据列的前缀性和选择性原则,安排索引的列顺序;
15.如果where语句中不得不对查询列采用函数查询,须评估建立相应函数索引的可行性;
16.不要建实际用不上的索引;
17.频繁更新的字段不建议设计为索引键值;
18.禁止选择经常被修改的字段做索引字段;
19.频繁进行数据操作的表,不要建立太多的索引;
20. 对于大的文本字段甚至超长字段,不要建索引;
21.如果一个列具有很低的数据基数,并且或者可具有空值,如建立索引,对性能有一定的影响,故建议不要有空值;
22.分区索引建立本地分区索引,主键则为全局索引。