mysql查询大量行

时间:2012-03-21 06:42:22

标签: mysql sql

我有以下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多行时,我该怎样做才能使查询花费更少的时间?

2 个答案:

答案 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()