[英]mysql_num_rows() php - is it efficient?
我在PHP頁面上有幾個SELECT
語句,我使用Dreamweaver生成這些語句。
在完成它生成的代碼之后,在大多數情況下似乎有很多可以刪除的絨毛,每個語句的mysql_num_rows()
行都是一個例子。
所以我想知道是否有人可以告訴我這是否實際上節省了資源 - 考慮到查詢是否正在運行,是否有任何實際開銷?
更新:在遵循Chriszuma關於microtime的建議之后,以下是我的結果:
//time before running the query
1: 0.46837500 1316102620
//time after the query ran
2: 0.53913800 1316102620
//time before calling mysql_num_rows()
3: 0.53914200 1316102620
//time after mysql_num_rows()
4: 0.53914500 1316102620
所以似乎沒有多少開銷
mysql_num_rows()在獲取行后對行進行計數。 這就像你獲取所有行並將它們存儲在PHP數組中,然后運行count($array)
。 但mysql_num_rows()是在MySQL客戶端庫中的C中實現的,因此它應該比同等的PHP代碼更有效。
請注意,為了使mysql_num_rows()起作用,您必須在PHP的內存空間中獲得查詢的完整結果。 因此,在查詢結果集可能很大的意義上存在開銷,並占用大量內存。
我希望這樣的調用對性能的影響極小。 它只是計算其內部存儲的查詢結果的行。 SQL查詢本身將占用絕大部分的處理時間。
如果您想確切知道,可以在調用之前和之后執行microtime() ,以確切了解它需要多長時間。
$startTime = microtime(true);
mysql_num_rows();
$time = microtime(true) - $startTime;
echo("mysql_num_rows() execution: $time seconds\n");
我懷疑你會在微秒范圍內看到一些東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.