我应该使用视图进行固定条件查询吗?

时间:2019-06-04 01:16:33

标签: mysql sql

如果我想获取表中的当前日期行,则以下哪种方法彼此比较好:

  1. 创建视图并添加where子句(例如where create_time = curdate()
  2. 创建一个表,在将某些行插入到相对表中时向其中插入行,并在每天凌晨0点通过计划事件清除表中的所有行。

在大多数情况下,我只会得到表中一部分行,而全部是行。MySQL无法添加索引来查看,因此方法2的查询性能可能比方法1更好。

实际上,我想知道是否有用于视图查询的缓存,也就是说,我创建了一个视图,然后在与该视图相对的表中插入了一行,MySQL会自动将该行添加到缓存中下一个查询的视图?

1 个答案:

答案 0 :(得分:2)

我不会使用

where create_time = curdate()

因为create_time确实听起来像是有时间成分的。我会用:

select t.*
from t
where t.create_time >= curdate();

大概将来的日期不在表格中。

为了提高性能,请在(create_time)上创建索引。