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

Fragmentacja tabel Wordpress i MySQL

Jedną z możliwości jest to, że widzisz nieprawidłowe statystyki dotyczące rozmiaru stołu.

MySQL 8.0 próbuje buforować statystyki dotyczące tabel, ale wydaje się, że są pewne błędy w implementacji. Czasami pokazuje statystyki tabeli jako NULL, a czasami pokazuje wartości, ale nie aktualizuje ich podczas modyfikowania danych tabeli.

Zobacz https://bugs.mysql.com/bug.php?id=83957 na przykład błąd, który omawia problemy z tym zachowaniem pamięci podręcznej.

Możesz wyłączyć buforowanie. Może to spowodować, że zapytania dotyczące INFORMATION_SCHEMA lub SHOW TABLE STATUS będą nieco wolniejsze, ale przypuszczam, że nie jest to gorsze niż w wersjach MySQL przed 8.0.

SET GLOBAL information_schema_stats_expiry = 0;

Wartość całkowita to liczba sekund, przez które MySQL przechowuje statystyki w pamięci podręcznej. Jeśli zapytasz o statystyki tabeli, możesz zobaczyć stare wartości z pamięci podręcznej, dopóki nie wygasną, a MySQL odświeży je, odczytując je z silnika pamięci.

Domyślna wartość wygaśnięcia pamięci podręcznej to 86400, czyli 24 godziny. To wydaje się przesadne.

Zobacz https://dev.mysql. com/doc/refman/8.0/en/server-system-variables.html#sysvar_information_schema_stats_expiry

Jeśli uważasz, że Wordpress pisze do tabeli, to może być. Aby się tego dowiedzieć, możesz włączyć dziennik binarny lub dziennik zapytań. Lub po prostu obserwuj SHOW PROCESSLIST na kilka minut.

Być może masz wtyczkę Wordpress, która często się aktualizuje lub wstawia do tabeli. Możesz poszukać najnowszego update_time:

SELECT * FROM INFORMATION_SCHEMA.TABLES
ORDER BY UPDATE_TIME DESC LIMIT 3;

Obejrzyj to, aby dowiedzieć się, które tabele są ostatnio zapisywane.

Są pewne zastrzeżenia dotyczące tej statystyki UPDATE_TIME. Nie zawsze jest zsynchronizowany z zapytaniami, które zaktualizowały tabelę, ponieważ zapisy w plikach obszaru tabel są asynchroniczne. Przeczytaj o tym tutaj:https://dev.mysql. com/doc/refman/8.0/en/tables-table.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstaw wiele wierszy do mysql (elementy oddzielone przecinkiem)

  2. Jak naprawić błąd podczas wykonywania zdarzeń zmiany tabeli DDL upuść klucz obcy FKg0mkvgsqn8584qoql6a2rxheq za pomocą instrukcji JDBC

  3. Grupuj MySQL z lewym złączem

  4. Konwertuj znacznik daty i godziny MySql na format daty JavaScript

  5. jak zamawiać według nazwy kolumny dynamicznej w EntityFramework?