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

Mengapa penyisipan/pembaruan MySQL InnoDB pada tabel besar menjadi sangat lambat ketika ada beberapa indeks?

Kedengarannya seperti itu

  • Ketidakseimbangan indeks dari waktu ke waktu
  • Fragmentasi disk
  • Fragmentasi file data internal innodb

Anda dapat mencoba analyze table foo yang tidak memerlukan kunci, hanya beberapa penurunan indeks dan membutuhkan beberapa detik.

Jika ini tidak memperbaikinya, Anda dapat menggunakan

mysql> SET PROFILING=1;
mysql> INSERT INTO foo ($testdata);
mysql> show profile for QUERY 1;

dan Anda akan melihat di mana sebagian besar waktu dihabiskan.

Rupanya innodb berkinerja lebih baik ketika penyisipan dilakukan dalam urutan PK, apakah ini kasus Anda?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Letakkan database MySQL di bawah kontrol versi?

  2. Bagaimana menemukan lokasi database MySQL di hard disk Anda?

  3. Mengapa penguncian tingkat tabel lebih baik daripada penguncian tingkat baris untuk tabel besar?

  4. FindByUUID() menggunakan Repositori JPA Spring Data

  5. tidak dapat menyimpan data dari 1 tabel ke tabel lain