Mysql
 sql >> база данни >  >> RDS >> Mysql

Консумация на PDO/MySQL памет с голям набор от резултати

След като създадете връзката, трябва да зададете PDO::MYSQL_ATTR_USE_BUFFERED_QUERY на 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());

Това извежда:

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

Независимо от размера на резултата, използването на паметта остава почти статично.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL избира част от низ и подрежда по това парче

  2. MySQL Errno 150

  3. Каква функция да използвате за хеширане на пароли в MySQL?

  4. КОРЕКЦИЯ:MySQL – команда SELECT, отказана на потребителя

  5. Цикъл n пъти без използване на съхранена процедура