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

Wordpress &MySQL фрагментиране на таблици

Една от възможностите е да виждате неправилна статистика за размера на таблицата.

MySQL 8.0 се опитва да кешира статистиката за таблиците, но изглежда има някои грешки в изпълнението. Понякога показва статистическите данни на таблицата като NULL, а понякога показва стойности, но не успява да ги актуализира, докато променяте данните на таблицата.

Вижте https://bugs.mysql.com/bug.php?id=83957 например бъг, който обсъжда проблемите с това поведение на кеширане.

Можете да деактивирате кеширането. Това може да доведе до малко по-бавни заявки срещу INFORMATION_SCHEMA или SHOW TABLE STATUS, но предполагам, че не е по-лошо, отколкото във версиите на MySQL преди 8.0.

SET GLOBAL information_schema_stats_expiry = 0;

Целочислената стойност е броят секунди, в които MySQL съхранява статистиката в кеша. Ако направите запитване към статистическите данни на таблицата, може да видите стари стойности от кеша, докато не изтекат и MySQL ги обнови чрез четене от системата за съхранение.

Стойността по подразбиране за изтичане на кеша е 86400 или 24 часа. Това изглежда прекалено.

Вижте https://dev.mysql. com/doc/refman/8.0/en/server-system-variables.html#sysvar_information_schema_stats_expiry

Ако смятате, че Wordpress пише в таблицата, тогава може да е така. Можете да активирате двоичния регистър или регистъра на заявките, за да разберете. Или просто наблюдавайте SHOW PROCESSLIST за няколко минути.

Може да имате приставка за wordpress, която често се актуализира или вмъква в таблица. Можете да потърсите най-новото update_time:

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

Гледайте това, за да разберете кои таблици са записвани най-скоро.

Има предупреждения към тази статистика за UPDATE_TIME. Не винаги е в синхрон със заявките, които са актуализирали таблицата, тъй като записите във файловете на пространството за таблици са асинхронни. Прочетете за това тук: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. php произволни mysql данни

  2. Заявката за изместване на MySql не работи

  3. Какво означава MySQL с броя на колоните не съвпада с броя на стойностите в ред 1

  4. Свържете две таблици, след което Поръчайте по дата, НО комбинирайки двете таблици

  5. Не може да се свърже с отдалечен MySQL сървър