gpt4 book ai didi

Mysql 查询卡在发送数据中

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

我的查询需要很长时间才能处理,并且仍处于“发送数据”状态。

SELECT items.defindex,items.name,items.image_url,price.median as price,user_items.id ,user_items.item_id,user_items.original_id
FROM user_items
INNER JOIN items ON user_items.defindex=items.defindex
LEFT JOIN price ON user_items.defindex=price.defindex && user_items.quality=price.quality
WHERE user_items.user_id=6 && user_items.flag_cannot_trade=0 && price.price>=0 && items.price<=40 && items.banned=0
ORDER by price.median desc

下面是解释输出

enter image description here

所有三个表的索引 enter image description here如果需要,我会提供更多信息

谢谢

最佳答案

从可用索引来看,很明显您缺少处理大数据时需要的索引

您的表与 defindex 列连接,并且仅在 price 中建立索引

所以首先在其他两个表上添加索引。

alter table items add index defindex_idx(defindex);
alter table user_items add index defindex_idx(defindex);

现在您有了 where 条件order by ,优化器可以扫描更少的行数,您需要添加更多索引。

alter table user_items add index uid_flag_idx(user_id,flag_cannot_trade);
alter table price add index price_idx(price);
alter table items add index price_idx(price);
alter table items add index banned_idx(banned);
alter table price add index median_idx(median);

确保在应用索引之前备份表。

并在选择部分尝试price.median

关于Mysql 查询卡在发送数据中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29574149/

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