性能测量Mysql View VS UNION表

时间:2013-10-31 09:16:09

标签: php mysql sql sql-server

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

我的工作方式如下:

  1. 使用 TABLES UNION 制作 VIEW ,并使用以下查询: 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

  3. 所以我的问题是我想要一个更快的解决方案sol请帮我在VIEW和UNION之间做出选择。如果你有任何其他解决方案,比如mysql cluster SCALABLITY 告诉我。

1 个答案:

答案 0 :(得分:0)

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