所以我正在做一个Rails项目,我有一个遗留的数据库,被其他应用程序使用,因此它的结构不能被修改。问题是表和列名称不遵循Rails约定。一个常见的解决方案是创建只是正确别名列的MySQL视图。

这些都是死的简单的观点,只是有

SELECT old_column_1 AS new_column_1, old_column_2 AS new_column_2 FROM table_name;

有些表真的很大,就像2200万行(2GiB)。所有的桌子都是 MYISAM.还有一个 MEMORY 具有200万行的表(~350mib)

关键的问题是,我用这样的视图获得多少开销,并以任何方式影响它 ROW LOCKTABLE LOCK 期间 INSERTs或 JOINs?

有帮助吗?

解决方案

YMMV的。意见书 有时 未能执行相同的优化,导致执行速度比执行 SELECT 直接。由于您的情况是直截了当的,可能您不会产生明显的开销。

INSERTs 通过一个 VIEW 有局限性;听起来你不会打他们。阅读手册。

JOINs 是一个优化器可能会丢球的地方;建议您在提交更改之前进行离线试验。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top