0

我尝试制定一个数据库方案。我只是想知道哪种方法比其他方法更好。我有两种方法可以从我的数据库中完成搜索任务。条件如下:我有多个表名为table1,table2..tablen,具有相同的结构,表示不同的位置。

我的工作方式如下:

  1. 使用我的TABLES的UNION进行视图并使用如下查询: “。Select * from my_view where my_condition;
  2. 通过使用简单的UNION运算符并使用如下查询:

    select * from table1 where my_condition UNION select * from table2 where my_condition UNION ... .. select * from tablen where my_condition

所以我的问题是我想要一个更快的解决方案,请帮助我在 VIEW 和 UNION 之间进行选择。如果您有任何其他解决方案,例如 mysql cluster SCALABLITY,请告诉我。

4

1 回答 1

0

视图只是一个saved Named SELECT statement. 当您调用视图时,它只是简单地执行其定义中的 SELECT 语句,视图没有这样的性能优势,但有一些安全性和代码简单性优势。除非您创建Indexed View可以提高视图性能的查询以及可以从视图上创建的索引中受益的其他查询。警告索引视图带有一长串限制。
联合运算符垂直组合来自两个或多个选择查询的结果集。如果您想要更好的性能,您需要查看表上可用的索引以进行查询。
仔细检查您的查询的执行计划将是您的案例的最佳起点,因为它会让您了解 SQL SERVER 必须经过哪些步骤才能获得所需的结果集。

于 2013-10-31T09:30:51.790 回答