sql >> Databasteknik >  >> RDS >> Mysql

Wordpress &MySQL-tabellfragmentering

En möjlighet är att du ser felaktig statistik om tabellstorleken.

MySQL 8.0 försöker cachelagra statistiken om tabeller, men det verkar finnas några buggar i implementeringen. Ibland visar den tabellstatistik som NULL, och ibland visar den värden, men misslyckas med att uppdatera dem när du ändrar tabelldata.

Se https://bugs.mysql.com/bug.php?id=83957 till exempel en bugg som diskuterar problemen med detta cachningsbeteende.

Du kan inaktivera cachningen. Det kan göra att frågor mot INFORMATION_SCHEMA eller SHOW TABLE STATUS blir lite långsammare, men jag skulle gissa att det inte är värre än i versioner av MySQL före 8.0.

SET GLOBAL information_schema_stats_expiry = 0;

Heltalsvärdet är antalet sekunder MySQL håller statistik cachad. Om du frågar tabellstatistiken kan du se gamla värden från cachen tills de upphör och MySQL uppdaterar dem genom att läsa från lagringsmotorn.

Standardvärdet för cachens utgång är 86400, eller 24 timmar. Det verkar överdrivet.

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

Om du tror att Wordpress skriver till bordet kan det vara det. Du kan aktivera den binära loggen eller frågeloggen för att ta reda på det. Eller bara observera SHOW PROCESSLIST i några minuter.

Du kanske har ett plugin för wordpress som uppdateras eller infogas i en tabell ofta. Du kan leta efter den senaste update_time:

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

Titta på detta för att ta reda på vilka tabeller som senast skrivits till.

Det finns varningar för denna UPDATE_TIME-statistik. Det är inte alltid synkroniserat med frågorna som uppdaterade tabellen, eftersom skrivningar till tabellutrymmesfiler är asynkrona. Läs om det här:https://dev.mysql. com/doc/refman/8.0/en/tables-table.html



  1. Hur man beräknar lutningen i SQL

  2. Parameteriserade frågor PHP/MySQL

  3. App för att övervaka PostgreSQL-frågor i realtid?

  4. Analysera XML-sträng lagrad på Oracle Table