>  기사  >  데이터 베이스  >  MySQL의 버퍼링된 쿼리와 버퍼링되지 않은 쿼리 및 캐시되지 않은 pdo 쿼리 예

MySQL의 버퍼링된 쿼리와 버퍼링되지 않은 쿼리 및 캐시되지 않은 pdo 쿼리 예

php是最好的语言
php是最好的语言원래의
2018-08-02 14:01:062676검색

MySQL의 버퍼링 및 버퍼링되지 않은 쿼리

오늘은 MySQL의 쿼리 캐시의 고급 기능인 쿼리 캐시와 쿼리 비 캐시에 대해 자세히 설명하겠습니다!

원인: (메모리 오버플로 경고)

PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted

1 공식

#🎜🎜 #

가장 중요한 것은 캐시된 쿼리가 모든 콘텐츠를 한 번에 찾아 메모리에 저장한다는 것입니다. 그러면 캐시되지 않은 쿼리가 하나씩 MySQL 서버에서 직접 반환됩니다. 그들은 PHP 프로세스가 올 때까지 기다릴 것입니다. (주로 의미를 이해하면 충분합니다. 완전히 이해하려면 WeChat 또는 Baidu에서 번역하십시오.) 🎜🎜#MySQL의 버퍼링된 쿼리와 버퍼링되지 않은 쿼리 및 캐시되지 않은 pdo 쿼리 예 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[&#39;Name&#39;] . PHP_EOL;
       }
    }
    $uresult->close();
    
##pdo
    $pdo = new PDO("mysql:host=localhost;dbname=world", &#39;my_user&#39;, &#39;my_pass&#39;);
    $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[&#39;Name&#39;] . 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[&#39;Name&#39;] . PHP_EOL;
           }
    }

Summary:

캐시된 쿼리 및 비- 여기서 캐시된 쿼리는 실제로 많은 양의 데이터를 연산할 때 메모리 오버플로를 발생시키는 캐시된 쿼리이며, 이러한 상황을 방지하기 위해 캐시되지 않은 쿼리를 사용할 수도 있지만, mysql은 기다리기 때문에 이때 주의해야 할 점은 다음과 같습니다. php 프로그램은 데이터를 모두 얻을 때까지 데이터를 얻기 때문에 MySQL의 성능을 소모하게 되는데, 그렇다면 어떻게 올바르게 사용해야 할까요? 이 두 가지를 잘 이해하면 어떤 시나리오에서 사용되는지 알 수 있습니다. 그래도 사용 방법을 모르면 메시지를 남기거나 저에게 트윗하세요! 관련 기사:

MySQL '쿼리' 및 '질문' 측정 방법

오작동하는 MySQL 쿼리를 찾아서 제거하는 방법


관련 동영상:

Han Shunping의 최신 MySQL 기본 동영상 2016 튜토리얼

위 내용은 MySQL의 버퍼링된 쿼리와 버퍼링되지 않은 쿼리 및 캐시되지 않은 pdo 쿼리 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.