gpt4 book ai didi

Mysql inner join 计数查询速度太慢

转载 作者:行者123 更新时间:2023-11-29 07:29:12 31 4
gpt4 key购买 nike

我正在尝试使用简单的内部连接语句获取计数查询。我已经为所有属性创建了索引。查询很慢:(12 秒)。我在表 1 和表 2 中有 400 万条记录。这是我的查询:

 select count(*)
from (`mymodb`.`Table1`
join `mymodb`.`Table2` on ((`mymodb`.`Table2`.`id` =`mymodb`.`Table1`.`id_table1`)))
where (`mymodb`.`Table2`.`merchant_id` = 16444)
and Table1.created_at >= '2017-12-03 16:00:19' AND Table1.created_at <='2018-05-03 16:00:19';

这是desc查询命令(见5.524.164条记录):

1   SIMPLE  Table1      ALL Table12_index,Table16_index             5524164 21.38   Using where
1 SIMPLE Table2 eq_ref PRIMARY,idx_Table2_id-uniq,Table26_index PRIMARY 8 mymodb.Table1.id_table1 1 50 Using where

表2

这将是通过两个表(表 1 --- 表 2)的内部连接获取计数查询的最佳方式。 12 秒对于我的过程来说是非常糟糕的时间。

最佳答案

首先,我建议使用别名和替代语法来简化您的查询,以便您更好地阅读查询。

您肯定需要在表 2 上为 merchant_id 创建一个索引(如果您没有)。然后你需要分析你的查询。确保您对要查询的字段有一个组合索引。您应该获得数量级的性能提升。

关于Mysql inner join 计数查询速度太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52327904/

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