gpt4 book ai didi

Mysql优化查询之间的日期

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

我需要优化 MySQL 查询。我有一个“投注”表,其中的记录少于 100.000 条。我需要显示当月的所有记录。

SELECT betting.id 
FROM betting, members
WHERE members.status = 1
and members.id = betting.user
and betting.date between '2016-09-01' and '2016-09-30'
and betting.status = 1
and betting.type = 1;

当我尝试解释命令时:

SIMPLE  betting range   user,date,type,type_2   type_2  7   NULL    4966    Using where
SIMPLE members eq_ref PRIMARY PRIMARY 4 betting.user 1 Using where

是否有机会减少数据库搜索?问题是显示此结果的页面被调用得太频繁,从而导致大量的 CPU 成本。不幸的是我无法缓存结果,因为它们需要是实时的。有什么想法吗?

最佳答案

这是您以更容易(至少对我来说)理解的格式编写的查询:

SELECT b.id 
FROM betting b join
members m
ON m.id = b.user
WHERE m.status = 1
b.date between '2016-09-01' and '2016-09-30' and
b.status = 1 and
b.type = 1;

我认为最好的索引策略是:betting(status, type, date, user)members(id, status)

关于Mysql优化查询之间的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39572709/

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