我有一些要求 mysql 查询必须从5-7 mysql 表中选择相同的经常更新的数据集。 “选择”操作会比 CUD 多一点。
我正在考虑创建一个表或物化 View 来收集来自其他表的所有要求高的列,以减少对不同表的总体查询时间,从而提高性能。
如果我创建那个表,我可能需要在每次更新其他表时执行额外的插入/更新/删除操作。
如果我创建实体化 View ,我担心性能是否可以大大提高。因为其他表的数据变化非常频繁。很可能每次都需要先创建 View ,然后再选择它。
有什么想法吗?例如如何缓存?我可以采取其他额外措施吗?
最佳答案
I am thinking of creating a table or view to gather all demanding columns from other tables, so as to increase performance.
Most likely, the view may need to be created first everytime before selecting it.
View 只是查询。因此,无论您是进行查询以从 View 中选择还是只执行普通的 sql,性能都是一样的。
how to cache
缓存是一个非常复杂和具体的问题。所以没有 Elixir ,要做出决定应该提供更多的细节。
关于database-design - 创建物化 View 或新表哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2901157/