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

Mengapa MySQL InnoDB jauh lebih lambat pada pemindaian tabel penuh daripada MyISAM?

Di server saya dengan konfigurasi Anda, kinerja dasar saya adalah sebagai berikut:

  • InnoDB:5,71 detik
  • MyISAM:2,50 detik

Ini tidak buruk dalam buku saya, tetapi dapat menggunakan beberapa penyesuaian.

Performa InnoDB Anda dapat ditingkatkan di beberapa bidang:

Meningkatkan innodb_buffer_pool_size

  • Ini adalah satu-satunya variabel konfigurasi InnoDB yang paling penting. Idealnya harus 70-80% dari RAM Anda yang tersedia di server yang didedikasikan untuk MySQL dan InnoDB.
  • Meningkatkan innodb_buffer_pool_size di server saya ke 2G (lebih dari cukup untuk pengujian ini) menurun waktu InnoDB menjadi 4,60 detik

Jadikan id sebagai PRIMARY KEY

  • InnoDB mengelompokkan datanya berdasarkan PRIMARY KEY. Saat Anda tidak mendeklarasikannya, InnoDB menghasilkan yang acak secara implisit. Memiliki kunci utama berurutan (id) lebih cepat daripada kunci acak.
  • Menjadikan id sebagai PRIMARY KEY di server saya dikurangi waktu InnoDB menjadi 3,80 detik

Tingkatkan MySQL/InnoDB Anda

Dengan MySQL 5.1+ MySQL mendukung mesin penyimpanan yang dapat dicolokkan. Khususnya Plugin InnoDB yang baru .

Mesin InnoDB baru menyediakan banyak peningkatan kinerja yang mungkin memiliki pengaruh yang signifikan pada jenis kueri tertentu ini.

Catatan:

  • Pada MySQL 5.1.38, Plugin InnoDB disertakan dalam MySQL
  • Pada MySQL 5.1.43, Plugin InnoDB tidak hanya disertakan, tetapi merupakan mesin default untuk MySQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL INSERT dari SELECT

  2. loop hasil mysql di php di luar permintaan mysql

  3. Bagaimana saya bisa melakukan grup yang berdekatan di MySQL?

  4. MySql:apakah mungkin untuk 'SUM JIKA' atau 'HITUNG JIKA'?

  5. Nilai minimum dinamis untuk rentang spesifik (mysql)