将 table 替换为 MySQL 中的视图

Replacing table with view in MySQL

我必须处理由我无法验证的第三方软件读取(且仅读取)的数据库。它有一个 table 存储其他 table.

的部分副本

用视图替换此 table 是否安全?

除了视图限制之外,在 MySQL 中使用视图时,您必须注意一个非常重要的问题:WHERE 语句的性能受到很大影响:

例如:

SELECT column_a FROM table_n WHERE column_a="some value";

假设在 column_a 上有索引,

很快

现在创建视图:

CREATE VIEW column_a_view AS SELECT column_a FROM table_n;

SELECT * FROM column_a_view b WHERE b.column_a="some value";

可以导致完整的 table 扫描,因为 MySQL(至少在 5.6 之前)并不总是认识到它可以使用索引这一事实。

因此,特别是如果您正在处理大型 tables,创建 "copies" 相关数据并每个时间间隔替换一次该数据然后使用视图会更有益。