由於我不知道速度和PHP和MySQL的複雜事情(我)腳本,我有這樣一個問題:分頁:2查詢(行計數和數據)或1個大的查詢
我有一個數據庫有3個表格:
- '產品'有大約9個字段。包含產品數據,如「長」內容文本。
- '分類'有2個字段。包含類別名稱
- 'Productcategories'帶有2個字段。包含哪些產品具有哪些類別。每個產品都是1-3類別的一部分。
爲了建立分頁(我需要ROW_COUNT,因爲我想知道最後一頁是什麼),我不知道該怎麼做了最充分的事情是這樣的,而且也依賴於產品的量(50,100,500)。返回的結果取決於所選擇的類別:
"SELECT * FROM `productcategories`
JOIN products ON products.proID = productcategories.proID
WHERE productcategories.catID =$category";
理念1:
- 1查詢只選用1個字段中,而不是所有。然後用mysqli_num_rows()計算我的分頁的總行數。
- 第二個查詢,它直接選擇5或10(有我期望的極限)產品實際顯示。
理念2:
- 只有1查詢(上圖),在您使用mysqli_nuw_rows()的行數,後來,篩選出要顯示的行。
我不知道哪個是最好的。想法1似乎更快,因爲您必須選擇一個少得多的數據,但我不知道或需要2個查詢影響速度很多?哪一個最快:收集「大量」數據還是查詢? 如果我與我的想法完全錯誤,請隨時糾正我。
我也不會有太大的差別,但在這兩種情況下,你可能想改變SELECT *只選擇那些你真正需要你的頁面上的字段。 – Maximus2012
'SQL_CALC_FOUND_ROWS'看起來,答案 – 2013-07-24 20:58:27
@ Dagon:這確實看起來是最好的解決方案! – Pepe