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

Masalah Percona 5.6 InnoDB tidak menggunakan indeks dengan benar

Ini terdengar seperti:Bug #70617 Statistik persisten default dapat menyebabkan waktu kueri lama yang tidak terduga

Apa gunanya, ini bukan bug Percona, ini juga ada di MySQL 5.6 edisi komunitas.

Ada tiga solusi yang mungkin:

  1. Gunakan STRAIGHT_JOIN untuk memberikan petunjuk kepada pengoptimal agar tidak menyusun ulang referensi tabel.

    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
    

    Saya telah menulis ulang JOIN Anda untuk menggunakan sintaks SQL-92, yang saya rekomendasikan.

  2. Nonaktifkan statistik persisten InnoDB fitur, kembali ke perilaku sebelum 5.6.

    Di file my.cnf Anda:

    innodb_stats_persistent=0
    
  3. Refresh statistik pengoptimal InnoDB secara manual setelah Anda melakukan perubahan signifikan pada data (misalnya, setelah memuat mysqldump):

    ANALYZE TABLE items;
    ANALYZE TABLE formats;
    

PS:Saya bekerja di Percona, dan bug ini ditemukan oleh rekan saya Justin Swanhart .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Peringatan:mysqli_connect():Host server MySQL tidak dikenal

  2. Cara terbaik untuk menghapus baris mysql dari halaman html - hapus tautan dan php

  3. Kapan database disebut sebagai database Tertanam?

  4. Data karakter tidak lewat dari php ke jquery

  5. Beban Kerja Database OLTP/Analytics Hibrida di Cluster Galera Menggunakan Slave Asinkron