從sql本身來看,基本上沒有優(yōu)化的余地了,如果數(shù)據(jù)量過大造成的緩慢,
成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,先為平潭等服務(wù)建站,平潭等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為平潭企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
可以考慮使用sql分頁語句:
(即分頁由sql完成,并不是由PHP完成)
你要告訴我用的是什么數(shù)據(jù)庫: mysql? mssql? oracle?
如果不用sql分頁語句去寫,只能從數(shù)據(jù)庫上工夫。
1. 將幾個table 的 hotelId 字段, name字段 分別建立索引。
2. 建立分表,將大數(shù)據(jù)分之。
你的語句是正確的,速度慢兩種可能:
一、是索引不對,你所有的關(guān)聯(lián)字段,應(yīng)該在相應(yīng)表中有唯一索引,最好是主鍵,例如:
cdb_members.uid
cdb_memberfields .uid
supe_userfields.uid
cdb_members.groupid
cdb_usergroups.groupid
supe_userspaces.uid
supe_userspacefields.uid
如果以上的表沒有主鍵,請?jiān)O(shè)置相應(yīng)字段為主鍵,如果有其他的主鍵而且是必須的,那么在上面的字段建立唯一索引。
二、數(shù)據(jù)量過大,如果你cdb_members的記錄很多,遠(yuǎn)遠(yuǎn)大于500條,可以考慮改變程序,先重此表里面獲取500條數(shù)據(jù),然后在循環(huán)里面每條數(shù)據(jù)庫關(guān)聯(lián)獲取其它表的信息,這樣就不需要先對五個表做鏈接。
1.在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情況下,盡量用 file_get_contents,因?yàn)樗男矢叩枚?但是要注意file_get_contents在打開一個URL文件時候的PHP版本問題;
2.盡量的少進(jìn)行文件操作,雖然PHP的文件操作效率也不低的;
3.優(yōu)化Select SQL語句,在可能的情況下盡量少的進(jìn)行Insert、Update操作(在update上,我被惡批過);
4.盡可能的使用PHP內(nèi)部函數(shù)(但是我卻為了找個PHP里面不存在的函數(shù),浪費(fèi)了本可以寫出一個自定義函數(shù)的時間,經(jīng)驗(yàn)問題啊!);
5.循環(huán)內(nèi)部不要聲明變量,尤其是大變量:對象(這好像不只是PHP里面要注意的問題吧?);
6.多維數(shù)組盡量不要循環(huán)嵌套賦值;
7.在可以用PHP內(nèi)部字符串操作函數(shù)的情況下,不要用正則表達(dá)式;
8.foreach效率更高,盡量用foreach代替while和for循環(huán);
9.用單引號替代雙引號引用字符串;
10.“用i =1代替i=i 1。符合c/c 的習(xí)慣,效率還高”;
11.對global變量,應(yīng)該用完就unset()掉
網(wǎng)頁標(biāo)題:php數(shù)據(jù)庫優(yōu)化sql php數(shù)據(jù)庫語句
文章起源:http://muchs.cn/article18/ddgoodp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站制作、移動網(wǎng)站建設(shè)、微信公眾號、網(wǎng)站設(shè)計(jì)公司、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)