你的語句是正確的,速度慢兩種可能:
成都創(chuàng)新互聯(lián)網(wǎng)站建設公司,提供成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設,網(wǎng)頁設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;可快速的進行網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
一、是索引不對,你所有的關(guān)聯(lián)字段,應該在相應表中有唯一索引,最好是主鍵,例如:
cdb_members.uid
cdb_memberfields .uid
supe_userfields.uid
cdb_members.groupid
cdb_usergroups.groupid
supe_userspaces.uid
supe_userspacefields.uid
如果以上的表沒有主鍵,請設置相應字段為主鍵,如果有其他的主鍵而且是必須的,那么在上面的字段建立唯一索引。
二、數(shù)據(jù)量過大,如果你cdb_members的記錄很多,遠遠大于500條,可以考慮改變程序,先重此表里面獲取500條數(shù)據(jù),然后在循環(huán)里面每條數(shù)據(jù)庫關(guān)聯(lián)獲取其它表的信息,這樣就不需要先對五個表做鏈接。
從sql本身來看,基本上沒有優(yōu)化的余地了,如果數(shù)據(jù)量過大造成的緩慢,
可以考慮使用sql分頁語句:
(即分頁由sql完成,并不是由PHP完成)
你要告訴我用的是什么數(shù)據(jù)庫: mysql? mssql? oracle?
如果不用sql分頁語句去寫,只能從數(shù)據(jù)庫上工夫。
1. 將幾個table 的 hotelId 字段, name字段 分別建立索引。
2. 建立分表,將大數(shù)據(jù)分之。
有很多種方法可以優(yōu)化:
數(shù)據(jù)庫設置主從,進行讀寫分離;
數(shù)據(jù)分表,如按月份分表,需要統(tǒng)計數(shù)據(jù)就查總表;
優(yōu)化查詢語句,適當增加索引;
字段優(yōu)化,對不常用或者沒有必要的字段可以考慮放在另外一張表里,避免單表數(shù)據(jù)過大,字段過多。