为什么我建立的视图查询如此之慢?

2013-10-09 11:43:33 +08:00
 aisensiy
```
create or replace view site_count_for_records (site, url_count) AS (select newsite, count(url) as url_count from records group by newsite order by url_count DESC);
```

为了保存 group by 的结果,我建立了一个视图,但是悲剧的是我直接去这个新建的视图去查询怎么还是一样的慢呢?难道这个视图木有真正的保存查询结果?
10542 次点击
所在节点    MySQL
13 条回复
nybux
2013-10-09 11:50:54 +08:00
是oracle吗?可以试试物化视图

create materialized view ......
yangqi
2013-10-09 11:53:28 +08:00
视图本来就不保存结果的啊, 只保存查询语句然后模拟成一个表...
aisensiy
2013-10-09 11:56:27 +08:00
@yangqi 我是放在 mysql 节点的哦...
aisensiy
2013-10-09 11:56:50 +08:00
@nybux mysql 唉...
cxe2v
2013-10-09 11:58:32 +08:00
@aisensiy 别怪mysql。视图本来就只是提供一个快捷查询数据的方式,不保存结果的
vileer
2013-10-09 12:06:34 +08:00
@cxe2v @yangqi 说得对,可以试一下用临时表
yangqi
2013-10-09 12:14:07 +08:00
@aisensiy 我看到了,我说的就是mysql
aisensiy
2013-10-09 12:46:27 +08:00
临时表似乎是会自动删除的吧?看来我要自己再见一个表了?
vileer
2013-10-09 13:17:30 +08:00
@aisensiy 临时表的生存周期是在一个连接内,连接断开是会自动删除,至于用不用这个要看业务场景而定,需要持久化就不能用了,如果只是存中间结果,倒没什么问题
davepkxxx
2013-10-09 13:22:55 +08:00
mysql ……
aisensiy
2013-10-09 15:23:49 +08:00
我现在用了最土的办法,建立个表,然后 insert into...
roricon
2013-10-09 17:07:08 +08:00
话说,把Mysql的cache调大点不成么?
jinghli
2013-10-09 17:11:20 +08:00
insert into很慢的。要注意。可以考虑建一个索引。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/84954

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX