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

Zapytanie SQL zatrzymane w stanie statystyk

Niedawno natknąłem się na ten sam problem:MySQL zaczął się dusić (utknął w stanie „statystyki”) zapytaniami z wieloma połączonymi tabelami. Znalazłem dobry post na blogu wyjaśniając, dlaczego tak się dzieje i jak to rozwiązać.

Zasadniczo przynajmniej w MySQL 5.5, domyślna wartość parametru konfiguracyjnego optimizer_search_depth wynosi 62, co spowoduje, że optymalizator zapytań zajmie wykładniczo więcej czasu wraz ze wzrostem liczby tabel w zapytaniu. Po pewnym czasie zakończenie zapytania zacznie trwać kilka dni lub nawet dłużej.

Jeśli jednak ustawisz optimizer_search_depth do 0 w swoim my.cnf , MySQL automatycznie wybiera odpowiednią głębokość, ale ogranicza ją do 7, co nie jest jeszcze zbyt skomplikowane.

Najwyraźniej ten problem został naprawiony w MySQL 5.6, ale sam go jeszcze nie testowałem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ostrzeżenie:mysqli_stmt::bind_param():Liczba zmiennych nie odpowiada liczbie parametrów w przygotowanej instrukcji

  2. Jak przesłać dane bazy danych MySQL do aplikacji internetowej MVC .NET?

  3. Zwróć tylko jeden wiersz z tabeli skrajnej po prawej dla każdego wiersza w tabeli skrajnej po lewej stronie

  4. Flask-Sqlalchemy Brakujący BEGIN wydaje się powodować brak synchronizacji sesji

  5. Jak mogę przepisać to zapytanie, aby uniknąć błędu:Nie można określić tabeli docelowej do aktualizacji w klauzuli FROM