表A有id,u_id,name字段,表B有id,u_id,area字段,表A与表B用u_id关联,一对多关系。
select a.u_id,a.name,b.area from a,b where a.u_id=b.u_id;这样查询时间:0.0022S
select a.u_id,a.name,b.area from a,b where a.u_id=b.u_id group by u_id;这样查询时间:1.5S
为什么group by 以后查询速度相差这么多,u_id做了索引。
因为我要显示u_id,name,area列,并且u_id,name不要重复,area可以随便取出一条显示,这样我该怎么做?group by u_id显然效率太差。
比如:
不用group by这样显示
1,1,1
1,1,2
1,1,3
2,2,1
2,2,2
这样速度还快,可是我想这样显示
1,1,1
2,2,1
我用了group by u_id,可效率太糟糕了。
我该如何提高效率?
select a.u_id,a.name,b.area from a,b where a.u_id=b.u_id;这样查询时间:0.0022S
select a.u_id,a.name,b.area from a,b where a.u_id=b.u_id group by u_id;这样查询时间:1.5S
为什么group by 以后查询速度相差这么多,u_id做了索引。
因为我要显示u_id,name,area列,并且u_id,name不要重复,area可以随便取出一条显示,这样我该怎么做?group by u_id显然效率太差。
比如:
不用group by这样显示
1,1,1
1,1,2
1,1,3
2,2,1
2,2,2
这样速度还快,可是我想这样显示
1,1,1
2,2,1
我用了group by u_id,可效率太糟糕了。
我该如何提高效率?
解决方案 »
- 帮忙看看这个mysql的删除语句,为什么老是提示语法错误
- 急急急---菜鸟求助
- SET GLOBAL log_bin_trust_function_creators = 1 如何在my.cnf里面配置?
- 同一台服务器可以开启2个Mysql服务器吗?
- windows客户端如何通过程序访问unix/linux下的数据库(如mysql,postgresql,oracle)
- mysql查询中的索引问题
- mysql表被破坏,但不能恢复
- 怎样创建数据库别名?
- 请问mm.mysql驱动怎么安装??
- Mysql怎么查询100个表格里的数据
- PostgreSQL 实用实例参考
- 在使用MySQL时如何更改数据库名及表名?在线等待。。。
explain select a.u_id,a.name,b.area from a,b where a.u_id=b.u_id group by u_id;
把这个输出来看看。。另外给出你的CREATE TABLE,SHOW INDEX。