Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 避免子查询进行优化_Mysql_Query Optimization - Fatal编程技术网

Mysql 避免子查询进行优化

Mysql 避免子查询进行优化,mysql,query-optimization,Mysql,Query Optimization,我试图优化一个查询,结果被卡住了。谢谢你的帮助。基本上有两张桌子,一张是为人们准备的,另一张是为人们准备的。结构类似于- table 1 - people - columns - peopleid, name table 2 - events - columns - event name, peopleid, description 我想找出没有事件的人,而不使用子查询。我是用一个子查询来实现的,但是性能下降了很多,我需要优化 感谢您的帮助向我们显示您的查询,向我们显示表的定义(带有现有索引)

我试图优化一个查询,结果被卡住了。谢谢你的帮助。基本上有两张桌子,一张是为人们准备的,另一张是为人们准备的。结构类似于-

table 1 - people - columns - peopleid, name
table 2 - events - columns - event name, peopleid, description
我想找出没有事件的人,而不使用子查询。我是用一个子查询来实现的,但是性能下降了很多,我需要优化


感谢您的帮助

向我们显示您的查询,向我们显示表的定义(带有现有索引)。无论是子查询还是联接,问题可能出在索引上。为什么性能会“降级”?与其直接得出需要删除子查询的结论,不如找出是什么导致查询耗时过长(可能通过
EXPLAIN
ing查询)并解决根本原因?检查现有索引Fragmation。检查缺少的列并创建非群集覆盖索引。@Thit Lwin Oo:没有意义引用:并向我们显示您的查询,向我们显示表的定义(使用现有索引)。无论是子查询还是联接,问题可能出在索引上。为什么性能会“降级”?与其直接得出需要删除子查询的结论,不如找出是什么导致查询耗时过长(可能通过
EXPLAIN
ing查询)并解决根本原因?检查现有索引Fragmation。检查缺少的列并创建非群集覆盖索引。@Thit Lwin Oo:没有意义引用:这将减少6秒的时间:)。我的原始查询大约需要50秒来执行,执行这个查询大约需要43.8秒。因此,这是一种进步。仍在尝试进一步优化。非常感谢你的回答。接受它是正确的,因为我还没有看到另一个,它在某种程度上做到了要求的。@pinaki:下次你问关于db优化的问题时,请附上你真正的方案。我知道这很令人沮丧,但是公司的政策和你所知道的一切,使你无法分享真实的东西。不过我试着让它尽可能接近真实的东西。感谢您的努力这将时间缩短6秒:)。我的原始查询大约需要50秒来执行,执行这个查询大约需要43.8秒。因此,这是一种进步。仍在尝试进一步优化。非常感谢你的回答。接受它是正确的,因为我还没有看到另一个,它在某种程度上做到了要求的。@pinaki:下次你问关于db优化的问题时,请附上你真正的方案。我知道这很令人沮丧,但是公司的政策和你所知道的一切,使你无法分享真实的东西。不过我试着让它尽可能接近真实的东西。谢谢你的努力
   SELECT p.peopleid,
          p.name
     FROM people p
LEFT JOIN events e ON e.peopleid = p.peopleid
    WHERE e.peopleid IS NULL