我有以下mysql查询:
EXPLAIN
SELECT
id,
name,
title,
description,
time
FROM entity
WHERE
(date_end > CURRENT_DATE
OR (date_end = CURRENT_DATE AND time_end >= CURRENT_TIME)
)
AND (next_date < CURRENT_DATE
OR (next_date = CURRENT_DATE AND next_time <= CURRENT_TIME)
)
如果在表中处理10000多行时,我该怎样做才能使查询花费更少的时间?
答案 0 :(得分:0)
显示/分析解释计划将有助于更多回答。
虽然我想在[date_end, time_end]
和[next_date,next_time]
上添加综合索引可能会有所帮助
答案 1 :(得分:0)
如果可能,将date_end和time_end列合并到一个datetime_end列中,类似于next_date和next_time列作为next_datetime,并在datetime_end,next_datetime上设置索引。然后,您可以将查询重写为:
SELECT id, name, title, description, time
FROM entity
WHERE datetime_end >= now() and next_datetime <= now()