我对两个表进行内连接查询
select D.*,F.* FROM dyn D INNER JOIN uf F ON (D.uid=F.fuid AND F.uid=1) ORDER BY D.id DESC
发现数据量比较大的时候,执行效率低,用explain分析,看到Extra一栏的信息有using temporary,using filesort,查了一些资料说是如果extra有using temporary或者using filesort都会有问题,去掉这个查询语句后面的ORDER BY D.id DESC(D表的id是自动增加的主键,希望能用该字段进行排序),执行就快了很多,而且extra也没有using temporary和usingfilesort,这是怎么回事?如果才能解决?非常感谢。 id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE F ref FUID,UID UserID 4 const 8 Using temporary; Using filesort
1 SIMPLE D ref UID UserID 4 pdclub.F.FUID 9
select D.*,F.* FROM dyn D INNER JOIN uf F ON (D.uid=F.fuid AND F.uid=1) ORDER BY D.id DESC
发现数据量比较大的时候,执行效率低,用explain分析,看到Extra一栏的信息有using temporary,using filesort,查了一些资料说是如果extra有using temporary或者using filesort都会有问题,去掉这个查询语句后面的ORDER BY D.id DESC(D表的id是自动增加的主键,希望能用该字段进行排序),执行就快了很多,而且extra也没有using temporary和usingfilesort,这是怎么回事?如果才能解决?非常感谢。 id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE F ref FUID,UID UserID 4 const 8 Using temporary; Using filesort
1 SIMPLE D ref UID UserID 4 pdclub.F.FUID 9
解决方案 »
- 问一条简单的sql语句效率问题
- 请教一MYSQL数据库问题
- 树状结构的模型,该怎样设计数据库?
- 请教一个MYSQL的UPDATE的问题,谢谢
- 为什么执行全表查询,不执行模糊查询????????很郁闷
- 请高手解答,多个表中多个字段(字段相互关联!)复制到新表中去sql语句怎么写啊?感觉很难!!
- 表连接问题
- 请问如何将FoxPro中的数据表导入mysql中
- 远程调用Mysql,使用数据导出功能,出错,高手帮忙!
- 急!请各位高手指点:linux环境下,asp如何连接mysql数据库,请提供配置软件步骤和接口源代码!
- 请问一个统计SQL语句?
- 记录数的总量似乎并不完全按where后面的条件来统计,怎么回事?请高手指点。————在线等!谢谢!!
ID
UID
Content
HappenTime
uf表
FID
UID
FUID
这个代表你用了ORDER BY 。所以这个EXTRA是很正常的,除非你不用ORDER BY 。
pdclub.F.FUID这个是索引,用到了。
还有一个CONST。这个代表常量。也是非常优化的。ORDER BY 本来就是很消耗资源的。
如果你经常ORDER BY 的话。建议增加你的SORT_BUFFER_SIZE的值。
mysql> show status like 'Sort_merge_passes';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Sort_merge_passes | 0 |
+-------------------+-------+
1 row in set (0.00 sec)