免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3675 | 回复: 10
打印 上一主题 下一主题

group by 优化寻求指导 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-02 12:52 |只看该作者 |倒序浏览
SELECT * FROM info where id in (select owner_id from tags WHERE meta_key = "tag" and meta_value="标签") order by porder desc, visit desc limit 0, 100


SELECT * FROM info a left join tags  b on a.id = b.owner_id WHERE b.meta_key = "tag" and b.meta_value="标签"  order by a.porder desc, a.visit desc limit 0, 100


我靠,这两个sql 太吃资源了。 有什么好的解决方法呢?

标签可能很多,因为会有很多条目打上一个标签啊。

论坛徽章:
0
2 [报告]
发表于 2008-06-02 17:32 |只看该作者
Don't you know this form of order by can not use index search?

论坛徽章:
0
3 [报告]
发表于 2008-06-02 18:21 |只看该作者
谢谢你的回复。 我发现了这个问题,已经修改并把排序去掉了。 但是性能还是上不来。

论坛徽章:
0
4 [报告]
发表于 2008-06-02 18:24 |只看该作者
附上 数据情况


info 有 50万条数据
tags有150万条数据
每个info可能有若干个tags

论坛徽章:
0
5 [报告]
发表于 2008-06-04 13:53 |只看该作者
The first select statement can be replaced into the form of join.

SELECT a.* FROM info as a inner join tags as b on (a.id = b.owner_id and b.meta_key = "tag" and b.meta_value="标签") order by a.porder desc, a.visit desc limit 0, 100

论坛徽章:
0
6 [报告]
发表于 2008-06-04 13:55 |只看该作者
The second sql statement used the left join.
So the left table had to do a full table scan.

论坛徽章:
0
7 [报告]
发表于 2008-06-04 14:27 |只看该作者
原帖由 amsea 于 2008-6-2 12:52 发表
SELECT * FROM info where id in (select owner_id from tags WHERE meta_key = "tag" and meta_value="标签") order by porder desc, visit desc limit 0, 100


SELECT * FROM info a left join tags  b  ...




LZ,你说的资源是什么资源:数据库、CPU还是SELECT太慢,SELECT一次的时间是多少?

论坛徽章:
0
8 [报告]
发表于 2008-06-04 14:51 |只看该作者
原帖由 chuhongze 于 2008-6-4 14:27 发表




LZ,你说的资源是什么资源:数据库、CPU还是SELECT太慢,SELECT一次的时间是多少?


It oughts to be cpu.

论坛徽章:
0
9 [报告]
发表于 2008-06-04 18:24 |只看该作者
原帖由 yueliangdao0608 于 2008-6-4 13:53 发表
The first select statement can be replaced into the form of join.

SELECT a.* FROM info as a inner join tags as b on (a.id = b.owner_id and b.meta_key = "tag" and b.meta_value="标签") order by  ...




Using where; Using temporary; Using filesort

还是不行,呵呵。

论坛徽章:
0
10 [报告]
发表于 2008-06-04 18:26 |只看该作者

回复 #7 chuhongze 的帖子

CPU 、时间和磁盘操作。 都被拖累。
后来发现表结构有些问题,索引也有些问题。

减少了 meta_VALUE 的字段长度(varchar类型)
两个表的主键(ID ) 改为 数字 自增主键。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP