mysql_unbuffered_query的_mysql_query与mysql_unbuffered_query的区别
mysql_unbuffered_query
(PHP 4 >= 4.0.6, PHP 5)
mysql_unbuffered_query --? 向 MySQL 發(fā)送一條 SQL 查詢,并不獲取和緩存結(jié)果的行
說明
resource mysql_unbuffered_query ( string query [, resource link_identifier] )
mysql_unbuffered_query() 向 MySQL 發(fā)送一條 SQL 查詢 query,但不像 mysql_query() 那樣自動獲取并緩存結(jié)果集。一方面,這在處理很大的結(jié)果集時會節(jié)省可觀的內(nèi)存。另一方面,可以在獲取第一行后立即對結(jié)果集進行操作,而不用等到整個 SQL 語句都執(zhí)行完畢。當(dāng)使用多個數(shù)據(jù)庫連接時,必須指定可選參數(shù) link_identifier。
注: mysql_unbuffered_query() 的好處是有代價的:在 mysql_unbuffered_query() 返回的結(jié)果集之上不能使用 mysql_num_rows() 和 mysql_data_seek()。此外在向 MySQL 發(fā)送一條新的 SQL 查詢之前,必須提取掉所有未緩存的 SQL 查詢所產(chǎn)生的結(jié)果行。
mysql_unbuffered_query:unbuffered顧名思義不緩存,意思就是查詢結(jié)果不緩存。而大多數(shù)人用的mysql_query查詢結(jié)果緩存。
mysql_unbuffered_query的好處:第一是節(jié)省內(nèi)存,第二是它不用等數(shù)據(jù)獲取完全以后操作,直接可以獲取一條數(shù)據(jù)以后就可以操作。它的弊端是mysql_num_rows() 和 mysql_data_seek()對它無效,原因也在于它不緩存數(shù)據(jù)。下面是一個小例子:
$link = mysql_connect('localhost','root','root');
mysql_select_db('phpcms');
$sql = "SELECT * FROM `phpcms_content`";
//$result = mysql_unbuffered_query($sql,$link);
$result = mysql_query($sql,$link);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf ("ID: %s Name: %s", $row[0], $row[1]);
}
mysql_data_seek($result,0);
echo "
";
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf ("ID: %s Name: %s", $row[0], $row[1]);
}
mysql_free_result($result);
?>
如果使用mysql_query,則將結(jié)果輸出兩次。若用mysql_unbuffered_query則只能輸出結(jié)果一次。
mysql_unbuffered_query查詢是一邊查詢一邊給出結(jié)果.
mysql_query是查詢完所有的在給出結(jié)果.
如同頁面緩存
自己選擇吧,不過速度要求不高的話,還是用mysql_query吧
總結(jié)
以上是生活随笔為你收集整理的mysql_unbuffered_query的_mysql_query与mysql_unbuffered_query的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5新建没有头文件_IAR新建工程
- 下一篇: mysql索引_mysql系列:深入理解