Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Phân mảnh bảng Wordpress &MySQL

Một khả năng là bạn đang thấy số liệu thống kê không chính xác về kích thước bảng.

MySQL 8.0 cố gắng lưu trữ các thống kê về bảng, nhưng dường như có một số lỗi trong quá trình triển khai. Đôi khi nó hiển thị thống kê bảng dưới dạng NULL và đôi khi nó hiển thị giá trị nhưng không cập nhật được khi bạn sửa đổi dữ liệu bảng.

Xem https://bugs.mysql.com/bug.php?id=83957 ví dụ:một lỗi thảo luận các vấn đề với hành vi lưu vào bộ nhớ đệm này.

Bạn có thể tắt bộ nhớ đệm. Nó có thể khiến các truy vấn đối với INFORMATION_SCHEMA hoặc TRẠNG THÁI BẢNG HIỂN THỊ chậm hơn một chút, nhưng tôi đoán nó không tệ hơn so với các phiên bản MySQL trước 8.0.

SET GLOBAL information_schema_stats_expiry = 0;

Giá trị số nguyên là số giây MySQL lưu giữ các thống kê trong bộ nhớ cache. Nếu bạn truy vấn thống kê bảng, bạn có thể thấy các giá trị cũ từ bộ nhớ cache, cho đến khi chúng hết hạn và MySQL làm mới chúng bằng cách đọc từ công cụ lưu trữ.

Giá trị mặc định cho thời gian hết hạn bộ nhớ cache là 86400 hoặc 24 giờ. Điều đó có vẻ quá đáng.

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

Nếu bạn nghĩ rằng Wordpress đang ghi vào bảng, thì có thể là như vậy. Bạn có thể bật nhật ký nhị phân hoặc nhật ký truy vấn để tìm hiểu. Hoặc chỉ cần quan sát SHOW PROCESSLIST trong vài phút.

Bạn có thể có một plugin wordpress đang cập nhật hoặc chèn vào bảng thường xuyên. Bạn có thể tìm update_time mới nhất:

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

Xem phần này để biết bảng nào được viết gần đây nhất.

Có những cảnh báo đối với chỉ số UPDATE_TIME này. Nó không phải lúc nào cũng đồng bộ với các truy vấn đã cập nhật bảng, bởi vì việc ghi vào các tệp không gian bảng là không đồng bộ. Đọc về nó tại đây: https://dev.mysql. com / doc / refman / 8.0 / vi / table-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. MySQL COUNT không trả về False hoặc True trong PHP

  2. Cách nhanh nhất để Chèn dữ liệu lớn vào cơ sở dữ liệu Mysql

  3. MySqli Lệnh không đồng bộ; bạn không thể chạy lệnh này bây giờ

  4. PDO là các hàng bị ảnh hưởng trong khi thực thi câu lệnh

  5. Tìm ký tự% trong một truy vấn LIKE