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

MySQL:Mengapa DELETE lebih intensif CPU daripada INSERT?

Setidaknya dengan InnoDB (dan saya harap mereka memiliki Anda dalam hal ini), Anda memiliki lebih banyak operasi bahkan tanpa kunci asing . Sisipannya kira-kira seperti ini:

  1. Sisipkan baris
  2. Tandai di buffer log biner
  3. Tandai komit

Penghapusan melakukan hal berikut:

  1. Tandai baris dihapus (mengambil klik yang sama sebagai penyisipan -- halaman ditulis ulang)
  2. Tandai di buffer log biner
  3. Tandai berkomitmen
  4. Sebenarnya, hapus baris tersebut, (mengambil pukulan yang sama sebagai penyisipan -- halaman ditulis ulang)
  5. Bersihkan utas melacak penghapusan dalam buffer log biner juga.

Untuk itu, Anda memiliki dua kali pekerjaan untuk menghapus daripada menyisipkan. Penghapusan memerlukan dua penulisan tersebut karena harus ditandai sebagai dihapus untuk semua versi yang akan datang, tetapi hanya dapat dihapus jika tidak ada transaksi yang tersisa yang melihatnya. Karena InnoDB hanya menulis blok penuh, ke disk, penalti modifikasi untuk satu blok adalah konstan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kode Kesalahan:1406. Data terlalu panjang untuk kolom - MySQL

  2. PHP/PDO masukkan tanggal saat ini ditambah satu bulan ke dalam MYSQL

  3. Menghubungkan Visual c++ 2008 ke MySql

  4. cara menggabungkan nilai dari tabel lain dengan nilai kondisi yang sama

  5. Sisipan Bersyarat MySQL pada Duplikat