关于数据一些技术点的总结

前言

此文仅记录一些在操作数据库过程中的总结

1、数据库表主键字段应该尽量是有序的。例如自增主键;有序guid;或者是使用雪花算法生成有序主键。

表主键是一般聚集索引(物理存储上是连续的),如果新增的记录的主键是无序的,那么在插入记录时会导致原有数据的移动。对于数据量大的表插入数据,性能影响就比较大了。

扩展的说就是:聚集索引的字段应该是有序的。

2、尽量避免深度分页

深度分页是指查询指定的页码太大。例如一张500W行数据的表,我们按每页1000行进行分页查询,现在要查第2000页的数据。在实际操作的过程中,我们查询前几十页是非常快的。但是越往后就越慢了。这是因为查询后面页码的数据,数据需同时扫描前面页码的数据。所以越往后(越深的页码)查询速率就越慢。

有时候查询数据又是不可避免需要查询深度页码的数据,我们可以考虑如下:

1、可以考虑分段查询----增加查询条件分段查询;

2、对于排序字段不重复或者是查询数据的精确度不高的情况下,可以考虑将上一页的查询结果的最大/最小值(由排序顺序决定)作为“下一页“的查询条件(此时的下一页已经不再是分页了,而是条件过滤查询指定)。

3、索引的优缺点

索引分为聚集索引和非聚集索引。聚集索引就是物理存储上是顺序的;非聚集索引是数据库维护一张BTree按照对应字段记录数据顺序。

优点:

1、提升查询速率,对于数据量比较大的表性能提升尤为明显;

2、提升连表操作或者分组操作的性能

缺点:

 1、索引是占用物理空间的

2、索引对数据的增删操作是有影响的,因为这些操作过程中需要维护索引,就会有额外的性能耗损。

 

建立索引原则:

1、主键字段默认创建索引。

2、对于经常用于查询条件或者排序的字段创建索引

3、经常用于关联表字段也可建立索引

4、一个表建立的索引不宜过多,数据量非常小的表不用建立索引。

5、增删改非常频繁的表不宜建立索引。

 

posted on 2020-11-15 11:11  john_yong  阅读(101)  评论(0编辑  收藏  举报

导航