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版不能进)

解决方案 »

  1.   

    建了索引没有!
    应该不是吧
    改为这样试试:
    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 
      

  2.   

    hqhhh(枫叶) 兄, 你的連接其實就是inner join樓主你加了LIMIT 100語句, 又用了Order by LIMIT 語句作用好像不大啦.想問一下:去掉其中一个inner join速度會變快, 是去掉哪一個inner join呀
      

  3.   

    to ALL: 已经建索引了。to: konhon(优华):去掉INNER JOIN column ON (reso.CId = column.CId)和column.CName, 或者
    去掉INNER JOIN format ON (reso.Fid=format.Fid)和format.FName
      

  4.   

    //根据最后更新时间排序,最新的排在前。 reso 有28万记录,column 有250条,format 有26条 know有28万条去掉INNER JOIN column ON (reso.CId = column.CId)和column.CName, 或者
    去掉INNER JOIN format ON (reso.Fid=format.Fid)和format.FName這就奇怪啦, 樓主用的是內聯接, 照各表的記錄來看得出的結果記錄數不會超過250條呀.
    你換Left Join或Right Join試試.
    或者把各表的順序調換試試.
      

  5.   

    to hqhhh(枫叶) :我试过你的查询语句,快了点44.53秒。
      

  6.   

    建立以reso.RLastupdate的索引 ,并以DESC 方式排序,
    速度可能会更快一些!
    其实SQL的查询分析器有时也很奇怪的,执行同样的脚本,第一次执行时,可能要50秒,再次执行时,可能只需要10,不知大家有没有碰到这种情况!to :konhon(优华)
    這就奇怪啦, 樓主用的是內聯接, 照各表的記錄來看得出的結果記錄數不會超過250條呀.
    ----------
    你是怎么分析的呢,结果记录数为何不会超过250条呀!!!
      

  7.   

    to konhon(优华):
    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秒