SELECT
reso.RId,
reso.RTitle,
know.KName
column.CName,
format.FName
FROM
know
INNER JOIN reso ON (know.RId=reso.RId)
INNER JOIN column ON (reso.CId = column.CId)
INNER JOIN format ON (reso.Fid=format.Fid)
ORDER BY
reso.RLastupdate DESC
LIMIT 100
//根据最后更新时间排序,最新的排在前。 reso 有28万记录,column 有250条,format 有26条 know有28万条查询时间花了68秒
去掉其中一个inner join查询速度0.5秒
mysql三维数据查询这么差吗?(PS:csdn的mysql版不能进)
reso.RId,
reso.RTitle,
know.KName
column.CName,
format.FName
FROM
know
INNER JOIN reso ON (know.RId=reso.RId)
INNER JOIN column ON (reso.CId = column.CId)
INNER JOIN format ON (reso.Fid=format.Fid)
ORDER BY
reso.RLastupdate DESC
LIMIT 100
//根据最后更新时间排序,最新的排在前。 reso 有28万记录,column 有250条,format 有26条 know有28万条查询时间花了68秒
去掉其中一个inner join查询速度0.5秒
mysql三维数据查询这么差吗?(PS:csdn的mysql版不能进)
应该不是吧
改为这样试试:
SELECT
reso.RId,
reso.RTitle,
know.KName
column.CName,
format.FName
FROM know, reso, column, format
where know.RId=reso.RId and reso.CId = column.CId and reso.Fid=format.Fid
ORDER BY reso.RLastupdate DESC
去掉INNER JOIN format ON (reso.Fid=format.Fid)和format.FName
去掉INNER JOIN format ON (reso.Fid=format.Fid)和format.FName這就奇怪啦, 樓主用的是內聯接, 照各表的記錄來看得出的結果記錄數不會超過250條呀.
你換Left Join或Right Join試試.
或者把各表的順序調換試試.
速度可能会更快一些!
其实SQL的查询分析器有时也很奇怪的,执行同样的脚本,第一次执行时,可能要50秒,再次执行时,可能只需要10,不知大家有没有碰到这种情况!to :konhon(优华)
這就奇怪啦, 樓主用的是內聯接, 照各表的記錄來看得出的結果記錄數不會超過250條呀.
----------
你是怎么分析的呢,结果记录数为何不会超过250条呀!!!
SELECT
reso.RId,
reso.RTitle,
know.KName
column.CName,
format.FName
FROM reso,know, column, format
where know.RId=reso.RId and reso.CId = column.CId and reso.Fid=format.Fid
ORDER BY reso.RLastupdate DESC
根据这个来查询,结果有28万条速度80.36秒,加limit 100后44.53秒
-----------------------------------------------------------------
SELECT
reso.RId,
reso.RTitle,
know.KName
column.CName
FROM reso, know, column
where know.RId=reso.RId and reso.CId = column.CId
ORDER BY reso.RLastupdate DESC
根据这个来查询,结果有28万条速度25.76秒,加limit 100后0.53秒