我尝试制作数据库方案。我只是渴望知道哪种方法比其他方法更好。 我有两种方法可以从我的数据库中完成搜索任务。 条件如下: 我有多个表名称为 table1,table2..tablen ,其结构相同,表示不同的位置。
我的工作方式如下:
Select * from my_view where my_condition;
”。使用简单的 UNION 运算符并使用以下查询:
select * from table1 where my_condition
UNION
select * from table2 where my_condition
UNION
...
..
select * from tablen where my_condition
所以我的问题是我想要一个更快的解决方案sol请帮我在VIEW和UNION之间做出选择。如果你有任何其他解决方案,比如mysql cluster SCALABLITY 告诉我。
答案 0 :(得分:0)
查看只是saved Named SELECT statement
。当你调用一个视图时,它只是简单地在其定义中执行SELECT语句,视图没有这样的性能优势,但是有一些安全性和代码简单性的好处。除非您创建可以提高视图性能的Indexed View
以及可以从您的视图上创建的索引中受益的其他查询。 警告索引视图带有一长串限制。
Union Operator 垂直组合来自两个或多个选择查询的结果集。如果您想获得更好的性能,则需要查看表中可用的索引以查询查询。
仔细检查查询的执行计划将是您的最佳起点,因为它可以让您了解SQL SERVER必须经历哪些步骤才能获得所需的结果集。