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

Bagaimana isolasi tingkat transaksi memengaruhi kinerja dalam mode komit otomatis di MySQL?

TL; DR:Jika forum Anda lambat, TRANSACTION ISOLATION LEVEL kemungkinan besar bukan penyebabnya dan menyetelnya ke hal lain selain default tidak akan membantu. Menyetel innodb_flush_log_on_trx_commit =2 akan membantu, tetapi memiliki konsekuensi daya tahan untuk mogok.

Versi panjang:

TINGKAT ISOLASI TRANSAKSI apa yang telah saya tulis di http:// /mysqldump.azundris.com/archives/77-Transactions-An-InnoDB-Tutorial.html . Lihat semua 3 artikel ikhtisar InnoDB di http://mysqldump.azundris.com/categories/32 -InnoDB .

Hasilnya adalah bahwa bagaimanapun sistem harus dapat ROLLBACK, jadi bahkan READ UNCOMMITTED tidak mengubah apa pun yang perlu dilakukan pada penulisan.

Untuk membaca transaksi, membaca lebih lambat ketika rantai undo catatan log yang mengarah ke tampilan untuk membaca transaksi lebih panjang, jadi READ UNCOMMITTED atau READ COMMITTED mungkin sangat sedikit lebih cepat daripada default REPEATABLE READ. Tetapi Anda harus ingat bahwa kita berbicara tentang akses memori di sini dan akses disklah yang memperlambat Anda.

Tentang AUTOCOMMIT:Ini akan menyinkronkan setiap pernyataan tulis ke disk. Jika Anda telah menggunakan MyISAM sebelumnya dan itu cukup baik, Anda mungkin ingin mengkonfigurasi

[mysqld]
innodb_flush_log_on_trx_commit = 2

di file my.cnf Anda dan restart server.

Itu akan membuat komit menulis dari mysqld ke cache buffer sistem file, tetapi menunda pembilasan cache buffer sistem file ke disk sehingga itu terjadi hanya sekali dalam satu detik. Anda tidak akan kehilangan data apa pun pada kerusakan mysqld, tetapi Anda mungkin kehilangan penulisan hingga 1 detik pada kerusakan perangkat keras. InnoDB akan pulih secara otomatis, bahkan setelah kerusakan perangkat keras, dan perilakunya masih lebih baik daripada dengan MyISAM sebelumnya, meskipun tidak ACID penuh. Ini akan jauh lebih cepat daripada AUTOCOMMIT tanpa pengaturan itu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Periksa apakah string berisi angka

  2. Menyimpan data tabel yang diperoleh saat menggores halaman web menggunakan casperjs

  3. Memasukkan gambar ke dalam database

  4. Cara Membuat Database MySQL Menggunakan cPanel API

  5. Masalah pengalihan halaman Node-js