我试着制定一个数据库方案。我只是想知道哪种方法比其他方法更好。我有两种方法来完成我的数据库中的搜索任务。条件如下:我有多个表名为table1,table2..tablen具有相同的结构,表示不同的位置。
我的工作方式如下:
Select * from my_view where my_condition;)创建视图。select * from table1 where my_condition UNION select * from table2 where my_condition UNION ... .. select * from tablen where my_condition所以,我的问题是,我想要一个更快的解决方案,请帮助我在视图和UNION.If之间进行选择,您还有其他的解决方案,比如mysql集群、、可伸缩性告诉我。
发布于 2013-10-31 09:30:51
View只是一个saved Named SELECT statement。当您调用一个视图时,它只是执行其定义中的SELECT语句,视图没有这样的性能好处,但是有一些安全性和代码简单性的好处。除非您创建了Indexed View,这可以提高视图的性能,而且还可以从在视图上创建的索引中获益。警告索引视图有很长的限制列表。
联合运算符垂直组合来自两个或多个select查询的结果集。如果您想要更好的性能,则需要查看表中用于查询的可用索引。
仔细检查查询的选择计划将是在您的情况下最好的起点,因为它会让您知道SQL SERVER要获得所需的结果集必须经过哪些步骤。
https://stackoverflow.com/questions/19702435
复制相似问题