iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL慢查询现象解决案例
  • 693
分享到

MySQL慢查询现象解决案例

2024-04-02 19:04:59 693人浏览 八月长安
摘要

目录背景1.查看上述语句的执行计划2.测试模拟背景 线上慢查询日志监控,得到如下的语句:  发现:select doc_text from t_wiki_doc_text where do

背景

线上慢查询日志监控,得到如下的语句: 

发现:select doc_text from t_wiki_doc_text where doc_title = '谢泽源'; 这条语句昨天执行特别的慢

1.查看上述语句的执行计划

Mysql> explain select doc_text from t_wiki_doc_text where doc_title = '谢泽源';
+----+-------------+-------+------+---------------+------+---------+------+------+-----------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-----------------------------------------------------+
| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL |Impossible WHERE noticed after reading const tables|
+----+-------------+-------+------+---------------+------+---------+------+------+-----------------------------------------------------+
1 row in set (0.01 sec)

发现了Impossible where noticed after reading const tables,这是一个有趣的现象?(经查找,这个会全表扫描)

解释原因如下:

根据主键查询或者唯一性索引查询,如果这条数据没有的话,它会全表扫描,然后得出一个结论,该数据不在表中。

对于高并发的库来说,这条数据,会让负载特别的高。

查看线上的表结构,也印证的上述说法:

| t_wiki_doc_text | CREATE TABLE `t_wiki_doc_text` (
`DOC_ID` bigint(12) NOT NULL COMMENT '词条ID流水号',
`DOC_TITLE` varchar(255) NOT NULL COMMENT '条目原始标题',
`DOC_TEXT` mediumtext COMMENT '条目正文',
PRIMARY KEY (`DOC_ID`),
UNIQUE KEY `IDX_DOC_TITLE` (`DOC_TITLE`)(唯一索引)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

对此,我在自己的数据库里面,做了一个测试。

2.测试模拟

1).建立一个有唯一索引的表。

CREATE TABLE `zsd01` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
UNIQUE KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk

2).插入两条数据

insert into zsd01 values(1,'a');
insert into zsd01 values(2,'b');

3).分析一个没有数据记录的执行计划。(例如select name from zsd01 where name ='c'; )

mysql> explain select name from zsd01 where name ='c';
+----+-------------+-------+------+---------------+------+---------+------+-----
-+-----------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows

| Extra |
+----+-------------+-------+------+---------------+------+---------+------+-----
-+-----------------------------------------------------+
| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL

|Impossible WHERE noticed after reading const tables|
+----+-------------+-------+------+---------------+------+---------+------+-----
-+-----------------------------------------------------+

发现跟上述情况一模一样。

4.) 修改表结构为只有一般索引的情况。

CREATE TABLE `zsd01` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
KEY `idx_nORMal_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk

5.) 查看执行计划。

mysql> explain select name from zsd01 where name ='c';
+----+-------------+-------+------+-----------------+-----------------+---------
+-------+------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len
| ref | rows | Extra |
+----+-------------+-------+------+-----------------+-----------------+---------
+-------+------+--------------------------+
| 1 | SIMPLE | zsd01 | ref | idx_normal_name | idx_normal_name | 43
| const | 1 | Using where; Using index |
+----+-------------+-------+------+-----------------+-----------------+---------
+-------+------+--------------------------+
1 row in set (0.00 sec)

发现,就正常走了一般索引,rows=1的执行开销。

结论:从上述的例子和现象可以看出,如果数据不用唯一的话,普通的索引比唯一索引更好用。

到此这篇关于MySQL慢查询现象解决案例的文章就介绍到这了,更多相关MySQL慢查询内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL慢查询现象解决案例

本文链接: https://www.lsjlt.com/news/34184.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL慢查询以及解决方案详解
    目录一、前言二、慢查询2.1 什么是慢查询?2.2 慢查询配置1、慢查询日志2、未使用索引是否开启日志3、慢查询时间设置4、慢查询路径三、慢查询日志分析3.1 mysqldumpslow工具四、慢查询解决方案4.1 索引...
    99+
    2023-05-05
    mysql慢查询解决方案 mysql 慢查询 mysql 慢sql查询
  • sql慢查询解决方案
    一、慢查询产生原因 大体有以下三种可能: 1、索引没有设计好; 2、SQL 语句没写好; 3、MySQL 选错了索引。 二、慢查询解决方案 1、针对索引没有设计好的解决方案:给表重新加索引重新加索引 2、针对SQL 语...
    99+
    2023-09-01
    sql 数据库 mysql Powered by 金山文档
  • mysql查询慢的原因和解决方案
    查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 ...
    99+
    2024-04-02
  • mysql查询速度慢如何解决
    今天小编给大家分享一下mysql查询速度慢如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-04-20
    mysql
  • MySQL慢查询优化解决问题
    目录1.  MySQL慢查询介绍2.发现问题(主动/被动)3.找到原因-对症下药1.  MySQL慢查询介绍   MySQL的慢查询日志是MySQL提供...
    99+
    2024-04-02
  • MySQL聚合查询案例讲解
    目录1、前言2、插入查询结果3、聚合查询3.1 聚合函数3.1.1 count 3.1.2 sum3.1.3 avg 3.1.4 max 和 min4、GROUP BY 子句5、HAVING ...
    99+
    2023-03-20
    mysql聚合查询 sql聚合查询
  • MySQL的慢查询实例分析
    这篇文章主要介绍“MySQL的慢查询实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL的慢查询实例分析”文章能帮助大家解决问题。1 概念MySQL的慢查询,全名是慢查询日志,是MySQ...
    99+
    2023-06-28
  • MySQL 中查询速度慢如何解决
    这篇文章给大家介绍MySQL 中查询速度慢如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS:...
    99+
    2024-04-02
  • MySQL查询语句很慢如何解决
    今天就跟大家聊聊有关MySQL查询语句很慢如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。连接查询的优化无论什么数据库,多表连接的查询成本都是...
    99+
    2024-04-02
  • mysql大字段查询慢怎么解决
    索引优化:在大字段查询中,可以通过添加索引来优化查询速度。对于 TEXT、BLOB 类型的大字段,可以考虑使用全文索引(FULL...
    99+
    2024-05-10
    mysql
  • mysql跨库查询解决方案
    第一种跨库查询,是在同一个mysql服务器下两个不同的数据库之间的联查,关系如下图 在同一个mysql服务器下,不同的两个数据直接加上库名就可以实现跨库查询了 select * from t_test1 t1, test2.t_...
    99+
    2023-08-19
    mysql
  • Mybatis-Plus分页插件查询慢解决方案
    问题 需求反馈前端界面查询速度很慢。 分析 f12查看接口响应时间达到了5.47s。 查看后端代码逻辑,就是传了些参数,分页查询了一个列表的数据。分页插件使用的是mybatis-plus...
    99+
    2023-09-01
    mybatis mysql spring boot Powered by 金山文档
  • MySQL多表查询的案例详解
    多表查询 案列说明 笛卡尔积的理解 select id,department_name from employees,departments;#错的 select...
    99+
    2024-04-02
  • 怎么解决MySQL数据库出现慢查询问题
    这篇文章主要讲解了“怎么解决MySQL数据库出现慢查询问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决MySQL数据库出现慢查询问题”吧!1、My...
    99+
    2024-04-02
  • MySQL慢查询日志举例分析
    这篇文章主要介绍“MySQL慢查询日志举例分析”,在日常操作中,相信很多人在MySQL慢查询日志举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL慢查询日志举例...
    99+
    2024-04-02
  • MySQL慢日志查询实例分析
    本篇内容介绍了“MySQL慢日志查询实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、慢查询日志概...
    99+
    2024-04-02
  • 详解mysql跨库查询解决方案
    1.第一种跨库查询,是在同一个mysql服务器下两个不同的数据库之间的联查,关系如下图 在同一个mysql服务器下,不同的两个数据直接加上库名就可以实现跨库查询了 selec...
    99+
    2022-11-13
    mysql跨库查询
  • MySQL中怎么实现慢查询
    MySQL中怎么实现慢查询,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1  什么是慢SQL?这里指的是MySQL慢...
    99+
    2024-04-02
  • 如何解决mysql大表查询慢的问题
    小编给大家分享一下如何解决mysql大表查询慢的问题,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql大表查询慢的优化方法:1、合理建立索引,通常查询利用到索引比不用索引更快;2、对关键...
    99+
    2024-04-02
  • MySQL数据查询之连接查询的案例
    小编给大家分享一下MySQL数据查询之连接查询的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!连接关系是关系数据库模型的主要...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作