查询速度慢的原因,如何优化查询

  • Post author:
  • Post category:其他


页面显示数据一定要及时的呈现,否则会影响用户体现.那么导致页面加载数据慢或者显示滞后的原因又是什么呢?

原因分析

后台数据库中数据过多,未做数据优化

数据请求-解析-展示处理不当

网络问题

提高数据库查询的速度方案

SQL 查询速度慢的原因有很多,常见的有以下几种:

1、没有索引或者没有用到索引(查询慢最常见的问题,是程序设计的缺陷)

2、I/O吞吐量小,形成了瓶颈效应。

3、没有创建计算列导致查询不优化。

4、内存不足

5、网络速度慢

6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)

7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)

8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。

9、返回了不必要的行和列

10、查询语句不好,没有优化

SQL优化

1、恰当地使用索引

必要时建立多级索引,分析执行计划,通过表数据统计等方式协助数据库走正确的查询方式,该走索引就走索引,该走全表扫描就走全表扫描;

2、对查询进行优化,尽可能避免全表扫描

首先考WHERE 及ORDER BY涉及列上建立索引

3、数据库表的大字段剥离

假如一个表的字段数有100多个,拆分字段,保证单条记录的数据量很小

4、字段冗余

减少跨库查询或多表连接操作

5、表的拆分

表分区和拆分,无论是业务逻辑上的拆分(如一个月一张报表、分库)还是无业务含义的分区

6、查询时不要返回不需要的行、列

7、减少SQL中函数运算与其它计算

8、升级硬件

9、提高网速

10、扩大服务器的内存

11、增加服务器 CPU个数

代码过程优化

1、缓存,在持久层或持久层之上做缓存

使用ehcache缓存,这个一般用于持久层的缓存,提供持久层、业务层的快速缓存,或其它缓存

2、放弃关系数据库的某些特性,引入NoSQL数据库

3、复杂业务数据通过代码层实现组合

其它

读写分离



版权声明:本文为codeSmart原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。