共计 1505 个字符,预计需要花费 4 分钟才能阅读完成。
行业资讯
数据库
MySQL 数据库
MySQL 中 Buffered and Unbuffered queries 及 pdo 非缓存查询的示例分析
这篇文章主要为大家展示了“MySQL 中 Buffered and Unbuffered queries 及 pdo 非缓存查询的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“MySQL 中 Buffered and Unbuffered queries 及 pdo 非缓存查询的示例分析”这篇文章吧。
MySQL 的 Buffered and Unbuffered queries
我们就进一步的来 talk talk MySQL 的查询缓存的高级作用吧,也就是 查询缓存 和 查询非缓存!
起因:(内存溢出警告)
PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted
1. 官方
主要说缓存查询是一下子把内容都查出来,放到内存里,会越积越多;而非缓存查询则直接一条一条从 MySQL 服务器返回,也就是会等待着 php 进程来获取下一条数据。(主要了解这个意思就行,想要全了解的,微我或者百度翻译)
2.Buffer and unBuffer query
a) 缓存查询一般是用于查询数据一次性获得,会存与内存中;
b) 非缓存查询是直接从 MySQL 中一条一条的返回,不会存于内存中;
3.mysqli,pdo 的非缓存查询例子
?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 会被抛弃的,了解下即可
$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 非缓存查询的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!