MySQL中Buffered and Unbuffered queries及pdo非缓存查询的示例分析

54次阅读
没有评论

共计 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 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计1505字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)