PHP查詢資料有關問題
來源:互聯網
上載者:User
PHP查詢資料問題
資料庫用的是MYSQL5.5
我系統裡有不少表需要關聯,如微博的。
一條博文可能有好幾個表關聯起來,如使用者表,等其它表。
問題:
伺服器有memcache+apache+mysql5.5
展示博文時,因每條博文有片,音頻,視頻,等等不少關聯,是用一條SQL關聯出所有資料,還是先查出所有博文,再迴圈根據博文ID查詢出其它關聯資料,。
如要顯示10條博文,那就要去查詢10次資料庫,(SQL簡單,但查詢資料庫次數多)。
如果用一條關聯查詢,一條資料庫即查查出,(SQL複雜。)
請問使用哪種最優
------解決方案--------------------
請使用 Cache ~
------解決方案--------------------
用left join on 速度還可以
------解決方案--------------------
我的觀點:如果你發現join your table存在效能問題了,你就該放棄join了。換言之,如果還沒有存心瓶頸(短期內也不會出現瓶頸)那麼你可以繼續join。
nosql的觀點在DB不是著重業務處理,而是資料持久儲存。解放DB的業務負擔將極大改善DB的效能。
------解決方案--------------------
建議用程式來處理,資料庫只是用來儲存資料的,過於複雜的SQl不適合,資料量大的話,程式處理是最快的
------解決方案--------------------
個人感覺查詢速度很大一部分出現在SQL語句上,用join完全可以,但要注意where條件,例如一下子可以過濾掉很多資訊的where條件要放在所有where條件的最前面,再一個就是如果作為你查詢條件的某個資料庫欄位如果可以作為唯一約束,主鍵約束等一定要在資料庫中建立約束,樓主不信可以做個實驗~查詢所用時間是數量級上的變化,很可觀的!希望能對你有所協助
------解決方案--------------------
最好一個表一個表的查詢,盡量避免使用join查詢和子查詢。
------解決方案--------------------
如果是泛泛的理論的討論,那怎麼弄都不為過
若已經落實到具體的表中了,那麼建議使用視圖
將每次都需要展示的欄位加入到視圖中就可以了
實際的查詢是對視圖進行的
------解決方案--------------------
如果是泛泛的理論的討論,那怎麼弄都不為過
若已經落實到具體的表中了,那麼建議使用視圖
將每次都需要展示的欄位加入到視圖中就可以了
實際的查詢是對視圖進行的