针对特定sql脚本优化mysql查询
我想查询一个大约有7000万条记录的表。查询如下:针对特定sql脚本优化mysql查询,mysql,sql,query-optimization,Mysql,Sql,Query Optimization,我想查询一个大约有7000万条记录的表。查询如下: SELECT * FROM tweetentities WHERE applicationId = 6 AND isRetweet = false AND (CURDATE() <= DATE_ADD(tweetDate, INTERVAL 7 DAY)); 从tweetentities中选择* 其中applicationId=6 和isRetweet=false 和(CURDATE()这是您的查询: SELECT
SELECT * FROM tweetentities
WHERE applicationId = 6
AND isRetweet = false
AND (CURDATE() <= DATE_ADD(tweetDate, INTERVAL 7 DAY));
从tweetentities中选择*
其中applicationId=6
和isRetweet=false
和(CURDATE()这是您的查询:
SELECT *
FROM tweetentities
WHERE applicationId = 6 AND
isRetweet = false AND
(CURDATE() <= DATE_ADD(tweetDate, INTERVAL 7 DAY));
然后构建索引tweetentities(applicationId、istweet、tweetDate)
这是您的查询:
SELECT *
FROM tweetentities
WHERE applicationId = 6 AND
isRetweet = false AND
(CURDATE() <= DATE_ADD(tweetDate, INTERVAL 7 DAY));
然后构建索引tweetentities(applicationId、istweet、tweetDate)
@mehmetGokhanBakal,Gordon是正确的,尤其是在日期组件上。如果应用日期对于列,索引可以被利用,但是通过交换和计算当前日期,它可以被利用。好的,我有将近7000万条记录,使用applicationId、isRetweet、tweetDate列创建复合索引将花费太长的时间,这让我担心时间。您可以尝试创建索引,它可能不会花费您所需要的时间墨迹会的。@mehmetGokhanBakal,Gordon是正确的,尤其是在日期组件上。如果应用日期_add()对于列,索引可以被利用,但是通过交换和计算当前日期,它可以被利用。好的,我有将近7000万条记录,使用applicationId、isRetweet、tweetDate列创建复合索引将花费太长的时间,这让我担心时间。您可以尝试创建索引,它可能不会花费您所需要的时间墨迹会的。只需注意:您的查询版本在上周内收到推文,而不是超过一周的推文。如果您想要较旧的推文,则该标志会反转。只需注意:您的查询版本在上周内收到推文,而不是超过一周的推文。如果您想要较旧的推文,则该标志会反转。