Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyczerpano dozwolony rozmiar pamięci 134217728 bajtów (próbowano przydzielić 4294967296 bajtów)

Przeczytałem ten raport o błędzie tutaj:https://bugs.php.net/bug. php?id=51386

Twój problem wydaje się mieć miejsce, ponieważ istnieje longblob lub longtext w kolumnach tabeli.

longtext / longblob mieć maksymalną długość 4294967295 [4GB] dlatego mysqli próbuje przydzielić tę pamięć dla bufora, aby mieć pewność, że nic nie zostanie utracone. Proponuję użyć mediumtext (16777215 [16MB] maksymalna długość), co zwykle powinno wystarczyć na wszystko.

Aktualizacja: Ponieważ ta odpowiedź wykazała pewną aktywność, dodałem to rozwiązanie od Phil_1984 (patrz komentarze)

=> Jeśli używasz $stmt->store_result() możesz używać mysqli z longblob / longtext bez uzyskania błędu.

-

Stara odpowiedź: Proponuję zmienić kolumnę na inny typ (mediumtext) lub użyć PDO (myślę, że nie ma tego problemu). ale jeśli chcesz zachować kolumnę jako długi tekst, musisz zmienić bibliotekę mysql

Cytat z PHP Dev:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Brak wartości identyfikatora klucza podstawowego Doctrine Symfony2

  2. Jak wygenerować unikalny identyfikator w MySQL?

  3. Kod błędu:1064 w mysql

  4. mariadb Regexp czasami zwraca pusty w procedurze składowanej

  5. Przyspieszenie zrzutów mysql i importów