比如: 1、服务器点点莒县内存不足 若查询量大

摘要:对于数据库而言,只要做好数据存储工作就行了,但对于SQL而言,执行效率是很重要的指标。目前主流的关系型数据


对于数据库而言,只要做好数据存储工作就行了,但对于SQL而言,执行效率是很重要的指标。目前主流的关系型数据库都自带了查询分析器和优化器,能自动对我们编写的SQL进行最优处理,即便如此,SQL执行慢的现象还是不可避免的。虽说SQL语句执行慢是大家经常遇到的,但背后原因并不简单。

比如: 1、服务器点点莒县内存不足 若查询量大

SQL执行是偶尔慢还是一直慢?

这一点很重要,SQL语句执行速度偶尔慢和一直慢的背后因素是不同的,自然要分场景来分析问题。

SQL执行偶尔慢的原因分析

如果一条SQL语句绝大多数情况下都是正常的,偶尔出现慢的情况,那一般来说此SQL语句问题不大,可能是其它因素影响了它的执行效率,比如:

1、服务器内存不足

若查询量大,而查询的数据页又不在内存中时,就需要申请内存,此时一旦内存不足就会淘汰一些内存数据,这些操作就会影响SQL执行速度。

2、日志文件过大

数据库在同步日志及数据到磁盘上时,也会影响SQL执行效率。

3、无法获取锁

当我们在操作数据时,若别人也在用这张表而且加锁了,我们无法获取到锁,只能等待他人释放锁,哆啦解大雄,这个很影响SQL效率。

SQL执行一直慢的原因分析

如果数据量级不变,而某条SQL执行时一直都很慢,那就需要看看SQL语句写法是否存在问题了,另外数据库的一些配置是否存在问题,比如:

1、相关字段是否建有合适的索引?

比如更新操作,如果加了where条件,而条件列字段没有索引,那就意味着要全表扫描,这样一来SQL慢也就是正常现象了。

2、字段有索引,炫机堂,但SQL并没有用到此索引

并不是说我们对字段创建了索引,索引就一定会生效。在某些情况下,一些SQL写法会导致索引失效,比如在索引列上使用了函数。

3、系统采样统计失误导致系统没有使用索引而是全表扫描,此时需要强制使用索引

SQL执行时,数据库系统会进行一个预测:看是走索引扫描的行数少,还是全表扫描的行数少。索引基数是通过采样来统计的,存在一定误差,如果误差过大那可能会使系统错误的决定使用全表扫描,欧阳莎莎果照,此时我们可以在SQL中声明强制走索引查询。

4、硬件限制

如果服务器CPU及磁盘读写速度低、内存小,那同样会影响整个数据库性能。


本文地址:/wenhua/20190803/24460.html 转载请注明出处!
相关文章:
  1. [时事观察]拈花郎洞熊被认为是一种于更新世亚欧北部的熊
  2. [时事观察]由此追踪墨炮艇坠落 第一条线索鱼的动态变化香
  3. [科技之窗]这一全球珊瑚天下女人心87地图每天都会更新天降