我们有一个 MySQL 表,其中的行永远不会更新,而是添加新行并将旧行标记为过时。想想 Rails 的 acts_as_paranoid
,但对于每次更新。
为了使 Rails 的工作更加合理,我们有一个 View ,它只选择“当前”的行。这为我们的 ActiveRecord 模型创建了一个更好的“表”。
障碍:我们的索引不再被使用。
对 View 的查询不使用基础表的索引。您不能向 View 添加索引。如果没有索引,该应用程序将慢得无法忍受。
我们想出的唯一解决方案是构建物化 View ,但这在 MySQL 中是一个难题,因为它们不受原生支持。
有更好的方法吗?
最佳答案
由于 MySQL 执行 View 下的查询,它仍应使用构成 View 的查询的索引。对您用于创建 View 的查询进行解释,如果它没有编制索引,请在此处发布。
关于mysql - 在 MySQL View 上/通过 MySQL View 使用索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2908628/