計算大型表:SELECT COUNT() 與mysql_num_rows()
在包含數百萬筆記錄的表中導航時,至關重要考慮行計數對效能的影響。兩個常見的選項是 SELECT COUNT() 和 mysql_num_rows(),每個選項都有自己的優點和缺點。
SELECT COUNT()
SELECT COUNT() 是專門設計的用於計算行數並分配記憶體僅用於儲存結果。它透過使用避免檢索實際資料的內部伺服器進程來高效運行。這使得它非常適合只需要行數的情況。
mysql_num_rows()
mysql_num_rows(),另一方面,處理整個結果集。它為所有返回的記錄分配內存,並將伺服器置於涉及鎖定和其他資源密集型操作的“獲取模式”。這種方法可能會比較慢,特別是對於大型結果集。
搜尋結果分頁
對於基於搜尋結果的分頁,通常最好使用 SELECT COUNT()。透過將搜尋條件合併到 SELECT COUNT() 語句中,您無需單獨查詢即可取得行數。這種方法減少了查詢數量並提高了整體效能。
例如,不要像範例中使用兩個單獨的查詢:
1. $condition = " fname='rinchik' "; 2. $result_count = "SELECT COUNT(id) FROM my_large_table WHERE" . $condition;
您可以將程式碼修改為:
$condition = " fname='rinchik' "; $result = "SELECT * FROM my_large_table WHERE" . $condition; $result_count = mysql_num_rows($result);
結論
雖然mysql_num_rows() 可以提供行計數,但使用SELECT COUNT() 是計算大型表或檢索行計數的更有效方法搜尋結果。它避免了不必要的數據檢索並顯著提高了效能。
以上是SELECT COUNT() 與 mysql_num_rows():哪個比較適合計算大型表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!