這篇文章主要為大家展示了“中Buffered and Unbuffered queries及pdo非緩存查詢(xún)的示例分析”,內容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習一下“MySQL中Buffered and Unbuffered queries及pdo非緩存查詢(xún)的示例分析”這篇文章吧。
我們就進(jìn)一步的來(lái)talk talk MySQL的查詢(xún)緩存的高級作用吧,也就是 查詢(xún)緩存 和 查詢(xún)非緩存!
起因:(內存溢出警告)
PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted
1.官方
主要說(shuō)緩存查詢(xún)是一下子把內容都查出來(lái),放到內存里,會(huì )越積越多;而非緩存查詢(xún)則直接一條一條從MySQL返回,也就是會(huì )等待著(zhù)php進(jìn)程來(lái)獲取下一條數據。(主要了解這個(gè)意思就行,想要全了解的,微我或者百度翻譯)
2.Buffer and unBuffer query
a) 緩存查詢(xún)一般是用于查詢(xún)數據一次性獲得,會(huì )存與內存中;
b) 非緩存查詢(xún)是直接從MySQL中一條一條的返回,不會(huì )存于內存中;
3.mysqli,pdo的非緩存查詢(xún)例子
<?php##mysqli $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); $uresult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT); if ($uresult) { while ($row = $uresult->fetch_assoc()) { echo $row['Name'] . PHP_EOL; } } $uresult->close(); ##pdo $pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_pass'); $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false); $uresult = $pdo->query("SELECT Name FROM City"); if ($uresult) { while ($row = $uresult->fetch(PDO::FETCH_ASSOC)) { echo $row['Name'] . PHP_EOL; } } ##mysql 會(huì )被拋棄的,了解下即可 $conn = mysql_connect("localhost", "my_user", "my_pass"); $db = mysql_select_db("world"); $uresult = mysql_unbuffered_query("SELECT Name FROM City"); if ($uresult) { while ($row = mysql_fetch_assoc($uresult)) { echo $row['Name'] . PHP_EOL; } }
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站