0

我想知道mysql中物化视图和普通表的区别。虽然mysql不支持物化视图但我们可以使用flexview

目前我们正在处理一个呼叫详细记录(cdr 文件)并将记录保存在表(比如表 A)中,然后我们创建了另一个表(比如表 B),该表将包含表 A 中的记录,但按记录分组。因此表 B 将具有表 A 的计算记录,例如按国家或城市分组。

表 A 继续以巨大的规模增长,因为它正在保存所有 cdr 文件,而表 B 正在保存我们使用 group by 查询从表 A 获得的所有结果

现在我的问题是如何在这种情况下实现物化视图,以及就查询性能而言,与上述场景中的表 B 相比,它有何不同。

4

1 回答 1

2

在比较查询性能方面,表 B 中的 SELECT 与“flewview 物化视图”中的 SELECT 没有区别,因为 flexview 所做的是创建一个实际的表,并维护该表的内容。

可能会有所不同的是“物化视图”表的填充方式。它很可能与您填充和维护表 B 的方式不同。

根据 flexview 维护表的方式,当发生插入/更新/删除操作时,可能会对并发性产生影响。即,当“刷新”进程锁定行时,查询被阻止执行读取。

但就物化视图的查询而言,它与对常规表的查询没有任何不同。

于 2013-07-16T06:33:31.950 回答