這篇文章主要為大家展示了“MySQL中Buffered and Unbuffered queries及pdo非緩存查詢(xún)的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“MySQL中Buffered and Unbuffered queries及pdo非緩存查詢(xún)的示例分析”這篇文章吧。
創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供永清企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為永清眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)的建站公司優(yōu)惠進(jìn)行中。
我們就進(jìn)一步的來(lái)talk talk MySQL的查詢(xún)緩存的高級(jí)作用吧,也就是 查詢(xún)緩存 和 查詢(xún)非緩存!
起因:(內(nèi)存溢出警告)
PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted
1.官方
主要說(shuō)緩存查詢(xún)是一下子把內(nèi)容都查出來(lái),放到內(nèi)存里,會(huì)越積越多;而非緩存查詢(xún)則直接一條一條從MySQL服務(wù)器返回,也就是會(huì)等待著php進(jìn)程來(lái)獲取下一條數(shù)據(jù)。(主要了解這個(gè)意思就行,想要全了解的,微我或者百度翻譯)
2.Buffer and unBuffer query
a) 緩存查詢(xún)一般是用于查詢(xún)數(shù)據(jù)一次性獲得,會(huì)存與內(nèi)存中;
b) 非緩存查詢(xún)是直接從MySQL中一條一條的返回,不會(huì)存于內(nèi)存中;
3.mysqli,pdo的非緩存查詢(xún)例子
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; } }
以上是“MySQL中Buffered and Unbuffered queries及pdo非緩存查詢(xún)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!