首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与基本查询相比,MySql视图速度较慢

问与基本查询相比,MySql视图速度较慢
EN

Stack Overflow用户
提问于 2015-04-25 15:22:10
回答 3查看 759关注 0票数 0

我在MySQL中创建了一个视图

代码语言:javascript
复制
create view vtax
as
SELECT * FROM table1 
union
SELECT * FROM table2;

在表1中有800000条记录,table2有500000条记录,当我运行独立查询时,结果返回0.078秒,但当我通过视图运行它们时,它花费的时间超过10-15秒。

代码语言:javascript
复制
select * from vtax where col1=value; -- takes more than 10-15 secs

select * from table1 where col1=value; -- takes 0.078 secs

select * from table2 where col1=value; -- takes 0.078 secs

我已经分别在表上创建了索引。

任何帮助/想法应该做什么。

EN

回答 3

Stack Overflow用户

发布于 2015-04-25 15:26:17

联合

对结果执行distinct (通常是排序)。你能使用

联合所有

?(即这些行是不同的吗?)

票数 3
EN

Stack Overflow用户

发布于 2015-04-25 16:02:22

你应该把苹果和苹果进行比较。联合通常比简单查询慢得多。将联合与视图进行比较。您会注意到标准的联合查询也很慢。可能优化器在决定最优路径时有问题。检查其他一些问题,如:Why are UNION queries so slow in MySQL?

票数 0
EN

Stack Overflow用户

发布于 2015-04-25 16:06:41

正如注释中所述,视图不会在MySQL中建立索引。

如果在查询中使用联合:

代码语言:javascript
复制
SELECT * FROM table1 WHERE col1 = 'value'
UNION
SELECT * FROM table2 WHERE col1 = 'value'

然后就可以使用索引(如果有的话)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29862302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档