sql >> Databasteknik >  >> RDS >> Mysql

PDO/MySQL minnesförbrukning med stor resultatuppsättning

När du har skapat anslutningen måste du ställa in PDO::MYSQL_ATTR_USE_BUFFERED_QUERY till false:

<?php
$pdo = new PDO('mysql:host=127.0.0.1', 'foo', 'bar', array(
    PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,
));
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

// snip

var_dump(memory_get_usage());
var_dump(memory_get_peak_usage());

Detta ger ut:

int(39508)
int(653920)
int(668136)

Oavsett resultatstorlek förblir minnesanvändningen ganska statisk.



  1. Det gick inte att skicka strängvärde 1,2 som indata till en orakelfråga

  2. SQL Server pivot kontra multipel koppling

  3. INTERSECT i MySQL

  4. En metod för indexjustering – Del 2