gpt4 book ai didi

MySQL,查询太慢,如何改善?

转载 作者:行者123 更新时间:2023-11-30 23:35:24 24 4
gpt4 key购买 nike

问题

我正在使用 Workbench 5.2.35 和 MySQL 服务器 5.5 运行查询,我在 600.516 秒后出现错误“错误代码:2013。在查询期间丢失与 MySQL 服务器的连接”,也是在查询发生少量变化之后。查询有两个作用:

  1. 选择一种特定类型的记录,其特征是“col1”中有“value1”(从阶段 A 传递到阶段 B)
  2. 删除'col2'中的值与下一个结果的'col2'中的值相同的记录(从阶段B传递到阶段C)

    Stage A             Stage B             Stage C
    *************** *************** ***************
    *ID *col1*col2* *ID *col1*col2* *ID *col1*col2*
    *************** *************** ***************
    *1 * A * a * *3 * C * a * *3 * C * a *
    *2 * B * a * *7 * C * f * *7 * C * f *
    *3 * C * a * *8 * C * f * *16 * C * b *
    *4 * S * a * *9 * C * f * *18 * C * c *
    *5 * B * a * *16 * C * b *
    *6 * A * g * *17 * C * b *
    *7 * C * f * *18 * C * c *
    *8 * C * f *
    *9 * C * f *
    *10 * A * f *
    *11 * B * f *
    *12 * D * f *
    *13 * S * f *
    *14 * F * f *
    *15 * F * f *
    *16 * C * b *
    *17 * C * b *
    *18 * C * c *

并且是以下的概括: MySQL, select rows where a parameter value depends on the value that it has in a different row

查询是:

SELECT t.id, t.col2, t.col3, t.col4, t.col5 FROM tablename t
WHERE t.id < 1000000
AND t.col1 = 'value1'
AND t.col2 <>
(SELECT col2 FROM tablename
WHERE col1 = 'value1'
AND id > t.id
LIMIT 1);

错误原因

现在,从这篇文章 https://serverfault.com/questions/29597/what-does-mysql-error-2013-mean此错误的原因可能是:

  1. 有人终止了查询
  2. 网络问题导致连接中断
  3. 服务器崩溃/死亡
  4. 您的连接因 wait_timeout 空闲而被终止
  5. 客户端在 net_wait_timeout 之前拉取数据的速度不够快,因此被杀死了

但由于查询在 600.516 秒处停止,我猜本例中的问题是数字 4(超时)。

可能出现的问题及解决方案

第一个想法是增加 wait_timeout 时间,但我认为这是由先前的错误触发的:查询没有返回任何内容,而是继续运行。限制 t.id < 1000000 恰好用于在合理有限的子集中测试查询(数据库有大约 2 亿个条目)所以,我认为查询中存在一些问题,特别是在阶段 B 和阶段 C 之间的段落中(上一步是微不足道的)

对于错误或查询的任何想法将不胜感激。

谢谢


解决方案

这是工作代码,灵感来自最佳答案。命令 DISTINCT 有效,但最后我使用 GROUP BY 和 ORDER BY 以便以更好的方式呈现结果。

SELECT id, col1, col2, ..., coln FROM tablename
WHERE col1 = 'value1'
AND col2 = 'value2'
...
AND coln = 'valuen'
GROUP BY col2
ORDER BY id;

最佳答案

SELECT DISTINCT Par FROM table_name

http://www.w3schools.com/sql/sql_distinct.asp

关于MySQL,查询太慢,如何改善?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7848063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com