昨天查询数据库的时还正常,今早来上班时,SQL语句查询就突然变得很慢了。这样的情况我相信你一定遇到过。 下面就让小编来带你了解其中的原因吧!

本篇文章简单总结了一下可能导致数据库查询慢的原因,希望能给大家后续查询优化提供一下指导。

SQL语句查询突然变得很慢,常见的情况有以下几种:

电脑系统内存不足:和咱们的电脑一样,当内存不足的时候,就会变得很卡!

网速突然降速了:当网络速度变慢,HTTP 的请求也会变慢!

你所写的SQL语句不是***解

两个原则

两条快于一条:

***条SQL语句中,where查询语句中出现了null,这样就是导致数据库的引擎不会使用索引,而采取的是进行全表扫描一遍,这样的查询就会变得很慢。如果使用0来代替null,即为第二条SQL语句,则数据库查询运行速度的就会提高

精准快于全表:

很明显,***条SQL语句的执行速度要比第二条SQL语句快的多。因为***条SQL语句使用的是精准查询,索引查询;第二条SQL语句是将表中所有的数据都检索一遍,相当于全表查询,这样是很消耗时间的和资源的。

查询的数据库数据量变得很大

当你SQL Server 中所查询的数据量很大时,也会造成你的数据库很慢。

比方说 :我有一个数据量达到几百万的商品表,现在我需要查里面某些商品的信息,这样的查询也会很慢哦!例如:

表中数据上百万的数据量,要在这海量的数据中找到你所需要的商品信息,如果你写上这样的SQL语句,查询速度必须慢!

解决方案:

使用索引:

//--建立索引

这样的情况下,可以明显增加查询时间。因为使用了索引,可以在海量的数据中,快速的找到你所需要的信息,而不是在上百万的表数据中,一个个的检索到你所需要的信息。

数据库发生死锁现象

我们知道当程序发生死锁现象之后,程序就会卡在那个位置会变得很慢,很慢甚至一点都不动。所以,当你的SQL语句出现死锁现象之后,数据库查询也会很慢!

数据库死锁现象是指:两个或者是两个以上的SQL语句,争相访问同一个数据表,并且在***天SQL语句访问表的时候,同时将数据表给锁住了。就会造成第二条,第三条SQL语句不能访问到表而进行迟迟等待。如果没有人员原因干预的话,就是一直处于这种状态下,所以叫做死锁。

解决方法:

这种SQL语句发送死锁现象,一般都是bug造成的。修改程序的逻辑顺序,给出一个合适的程序执行逻辑顺序。避免同时锁定两个资源的现象发生。给SQL语句安排一个先后顺序。

I/O 执行响应时间太长

我们都知道木桶原理,决定盛水多少的,不是长木板而是那些短木板。同样,对于数据库而言 ,电脑系统的硬件设备 ——磁盘I/O 则是短木板。在程序执行中,我们经常会发现系统中的I/O,一直在不停地执行,而CPU却在清闲的等待。造成这种原因的发生是因为,磁盘的I/O(即磁盘的读写速度)远远跟不上CPU的处理速度。

优化方案:

尽可能的将程序放到内存中去执行

当读写I/O响应速度跟不上时,增加硬盘的个数,扩大存储

尽可能的选择一些读写速度高的磁盘来解决问题(ssd)

End

当第二天打开电脑时,发现数据库变得缓慢时,不妨试一试上面的方法,一定可以有意想不到的惊喜收获。

【编辑推荐】

【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0

mysql 查询慢_MySQL查询缓慢的N种原因,以及N+1种解决方法相关推荐

  1. mysql workbench 监控_mysql 使用workbench工具,表状态为read only的解决方法

    解决方法: MySQL中数据库表中如果没有设置primary key,在workbench中,无法直接编辑数据,必须设置PK和NN. 拓展: - PK: primary key (column is ...

  2. mysql整点抖动_MySQL 5.5 大量数据插入出现的抖动问题 及 解决方法

    背景 日志型应用的一个典型操作,是周期性地有大量的insert操作.这类操作需要对扩展表空间. 分析 在InnoDB里,扩展表空间的操作是在语句执行过程中,由执行线程直接调用的. 尤其是对于一些表每行 ...

  3. 注册表编辑器厘米爱你找不到mysql,win7系统中安装mysql后找不到服务或出现找不到指定文件的解决方法...

    最近有用户到本站反馈说碰到这样一个情况,就是在电脑中安装mysql后,出现找不到服务或出现找不到指定文件的情况,碰到这样的问题该怎么办呢,接下来给大家讲解一下 1.如果你是5.0的版本,先用cmd进入 ...

  4. 连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法

    连接mysql报错:Access denied for user 'root'@'localhost'(using password: YES)的解决方法 参考文章: (1)连接mysql报错:Acc ...

  5. mysql数据库查询缓存_MySQL查询缓存与数据库管理

    MySQL查询缓存与数据库管理 上一篇 / 下一篇  2010-01-25 21:51:07 / 个人分类:MYSQL/Cache MySQL查询缓存 注意:查询缓存绝不返回过期数据. 如果一个表发生 ...

  6. mysql复杂连接查询语句_MySQL查询语句之复杂查询

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  7. mysql 性能查看_MySQL查询性能问题排查

    Mysql数据库的性能问题排查是十分复杂的,具体方法视场景而定,这里只做大致思路分析. 1. 整体考虑导致查询性能低下的各种因素 导致SQL查询变慢的原因是多元化的,在遇到问题时首先要有一个全方位的思 ...

  8. php mysql 查询 区分大小写_MySQL查询字符串时区分大小写

    MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象. 方法一: 解 ...

  9. mysql查询过程从客户端发送查询请求_MySQL查询过程和高级查询

    最近有个需求,要修改现有存储结构,涉及查询条件和查询效率的考量,看了几篇索引和HBase相关的文章,回忆了相关知识,结合项目需求,说说自己的理解和总结. 总体目录如下,上篇介绍了前3小节,分析了索引为 ...

最新文章

  1. Huber loss--转
  2. 据说看完这21个故事的人,30岁前都成了亿万富翁。你是下一个吗
  3. UNIX高级环境编程(9)进程控制(Process Control)- fork,vfork,僵尸进程,wait和waitpid...
  4. Struts2和Struts1.x的全面比较
  5. 三种SQLServer分页查询语句笔记
  6. 如何交到一个女朋友?
  7. android 截图 listview,Android屏幕及view的截图实例详解
  8. 在recovery模式下命令控制手机_安卓手机开机密码忘记,解锁教程
  9. 网友写的验证码生成方案,可防止绝大多数机械识别。
  10. 问题六十一:三次b样条(b-spline)曲线的控制点和曲线形状的对应——以回旋体的“基本曲线”为例
  11. Win10卸载edge浏览器与后悔重装
  12. php 接口签署域名,使用PHP集成万网域名查询API接口
  13. HDOJ-2154-跳舞毯
  14. windows 10安装两个eclipse
  15. 服务器备案问题解决思考?
  16. PHP中?是什么意思,有什么用?
  17. Excel图表—标准正态分布概率分布图(概率密度函数图及累积概率分布图)的绘制
  18. 2021年过氧化工艺模拟试题及过氧化工艺证考试
  19. Android 安卓 百度地图
  20. 2023第十五届电工杯数学建模AB题思路模型

热门文章

  1. 正荣地产的黄昏:拼命郎黄仙枝能赢得了这个时代吗?
  2. Ubuntu下的常用命令之——cp
  3. java对PNG图片圆角处理 保持PNG透明背景
  4. Java——类图、时序图、用例图
  5. 力扣206.反转链表C++
  6. 如何安装 Elasticsearch
  7. 2019最新ElasticSearch6.5.4mapping理解
  8. Hadoop High Availability
  9. 致敬区块链创业者,Neutrino 开放独立办公间申请
  10. DNS 域名解析服务器详解以及相关实验