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