select 字段 from 与select * from速度差很多问题
大家好,我有个sql语句,一个select * 用了0.2秒, 一个是select 具体字段,居然用了7秒多,有人知道原因么?
第一个语句
-
SQL code
SELECT * FROM fa_product a LEFT JOIN fa_view_borrow b ON a.id = b.fid LEFT JOIN fa_return c ON b.id = c.bid LIMIT 0 , 50
第二个语句
-
SQL code
SELECT a.id id, a.cname cname, a.pname pname, a.cno cno, a.csort csort, a.cxulie cxulie, a.pno pno, a.cperson cperson, a.qty qty, a.cstatus cstatus, a.bd_version bd_version, a.cnote cnote, a.addad4 addad4, a.addip addip, a.addtime addtime, a.lastupdatead4 lastupdatead4, a.lastupdateip lastupdateip, a.lastupdatetime lastupdatetime, a.boardstatus boardstatus, a.firmware_version firmware_version, a.bsp bsp, a.epld epld, a.sad4 sad4, a.sip sip, a.stime stime, a.project project, a.uboot uboot, a.bd_version bd_version, b.place place, b.cname bname FROM fa_product a LEFT JOIN fa_view_borrow b ON a.id = b.fid LEFT JOIN fa_return c ON b.id = c.bid ORDER BY id DESC LIMIT 0 , 50
大家帮忙看下原因会是哪些呢?
一般来讲select 具体字段要快一些,你的情况确实确实比较奇怪,
确认是这样吗?
怎样运行的,MYSQL什么版本,加入SQL_NO_CACHE
SELECT SQL_NO_CACHE * from ….
看看结果
个人感觉应该是你第二个查询排序了的原因
你可以explain下
ORDER BY id DESC
区别在于这一句吗
指定具体字段速度应该更快些
为fa_productd的id字段建立索引。
INDEX?
索引如何
在fa_product上建立ID索引
才多少记录不可能这么慢。
a id
bid
fid
这些都是主键吧?
表用的字符集都一样吗?
方便的话贴表的结构出来吧。
实行
EXPLAIN 你的 sql 指令
贴出结果,帮你分析
想你这样瞎猜是没有用的
fid、BID上建立索引没有