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

Percona 5.6 Sự cố InnoDB không sử dụng các chỉ mục một cách chính xác

Điều này có vẻ như: Lỗi # 70617 Số liệu thống kê liên tục mặc định có thể gây ra thời gian truy vấn dài ngoài dự kiến ​​

Đối với những gì nó đáng giá, đây không phải là một lỗi Percona, nó cũng có trong phiên bản cộng đồng MySQL 5.6.

Có ba cách giải quyết khả thi:

  1. Sử dụng STRAIGHT_JOIN để đưa ra gợi ý để trình tối ưu hóa không sắp xếp lại các tham chiếu bảng.

    SELECT STRAIGHT_JOIN
      i.item_name, i.item_key, i.item_date, f.format_long
    FROM items i
    INNER JOIN formats f
      ON i.item_format = f.format_id
    WHERE i.item_private = 0 
    ORDER BY i.item_id DESC LIMIT 8
    

    Tôi đã viết lại JOIN của bạn để sử dụng cú pháp SQL-92, mà tôi khuyên bạn nên sử dụng.

  2. Tắt , hoàn nguyên về hành vi trước 5.6.

    Trong tệp my.cnf của bạn:

    innodb_stats_persistent=0
    
  3. Làm mới số liệu thống kê của trình tối ưu hóa InnoDB theo cách thủ công sau khi bạn thực hiện một thay đổi đáng kể đối với dữ liệu (ví dụ:sau khi tải mysqldump):

    ANALYZE TABLE items;
    ANALYZE TABLE formats;
    

Tái bút:Tôi làm việc tại Percona và đồng nghiệp của tôi Justin Swanhart đã phát hiện ra lỗi này .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thoát khỏi các dấu ngoặc kép trong JDBC bằng MySql

  2. Không xử lý được thông số định dạng với mysql.connector bằng Python

  3. Làm cách nào để gọi một hàm mysql (như mysql_insert_id) từ Perl nếu tôi đang sử dụng DBI / DBD?

  4. MySQL xử lý ÅÄÖ như AAO?

  5. MySQL:xóa tất cả các hàng không vừa được cập nhật