Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Fragmentasi tabel Wordpress &MySQL

Salah satu kemungkinannya adalah Anda melihat statistik yang salah tentang ukuran tabel.

MySQL 8.0 mencoba untuk men-cache statistik tentang tabel, tetapi tampaknya ada beberapa bug dalam implementasinya. Terkadang menampilkan statistik tabel sebagai NULL, dan terkadang menampilkan nilai, namun gagal memperbaruinya saat Anda memodifikasi data tabel.

Lihat https://bugs.mysql.com/bug.php?id=83957 misalnya, bug yang membahas masalah dengan perilaku caching ini.

Anda dapat menonaktifkan caching. Ini dapat menyebabkan kueri terhadap INFORMATION_SCHEMA atau SHOW TABLE STATUS menjadi sedikit lebih lambat, tetapi saya rasa itu tidak lebih buruk daripada di versi MySQL sebelum 8.0.

SET GLOBAL information_schema_stats_expiry = 0;

Nilai integer adalah jumlah detik MySQL menyimpan statistik dalam cache. Jika Anda menanyakan statistik tabel, Anda mungkin melihat nilai lama dari cache, hingga nilai tersebut kedaluwarsa dan MySQL menyegarkannya dengan membaca dari mesin penyimpanan.

Nilai default untuk kedaluwarsa cache adalah 86400, atau 24 jam. Tampaknya berlebihan.

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

Jika Anda berpikir Wordpress sedang menulis ke tabel, maka itu mungkin. Anda dapat mengaktifkan log biner atau log kueri untuk mencari tahu. Atau cukup amati SHOW PROCESSLIST selama beberapa menit.

Anda mungkin memiliki plugin wordpress yang sering diperbarui atau dimasukkan ke dalam tabel. Anda dapat mencari update_time terbaru:

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

Tonton ini untuk mengetahui tabel mana yang paling baru ditulis.

Ada peringatan untuk statistik UPDATE_TIME ini. Itu tidak selalu sinkron dengan kueri yang memperbarui tabel, karena penulisan ke file tablespace tidak sinkron. Baca tentangnya di sini: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. Mendapatkan stempel waktu menggunakan MySQL

  2. MYSQL - Ratakan Tabel Query

  3. Permintaan untuk memilih string yang diakhiri dengan karakter tertentu

  4. Konstanta kelas tidak terdefinisi 'MYSQL_ATTR_INIT_COMMAND' dalam konstanta kelas tidak terdefinisi (PHP 5.5.3)

  5. java.net.InetAddress kelas java tidak menyelesaikan IP pada wadah Alpine Docker