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

Kinerja penguncian tingkat baris InnoDB - berapa banyak baris?

Tidak sepenuhnya jelas apa yang Anda tanyakan. Penguncian memastikan bahwa hanya satu pengguna yang mencoba mengubah baris tertentu pada waktu tertentu. Penguncian tingkat baris berarti hanya satu baris yang mereka modifikasi yang dikunci. Alternatif yang biasa adalah mengunci seluruh tabel selama modifikasi, atau mengunci beberapa subset tabel. Penguncian tingkat baris hanya mengurangi subset baris tersebut ke angka terkecil yang masih memastikan integritas.

Idenya adalah untuk memungkinkan satu pengguna memodifikasi satu hal tanpa mencegah pengguna lain memodifikasi hal lain. Perlu dicatat, bagaimanapun, bahwa dalam beberapa kasus ini bisa menjadi sesuatu yang positif palsu, sehingga untuk berbicara. Beberapa database mendukung penguncian tingkat baris, tetapi membuat penguncian tingkat baris jauh lebih mahal daripada mengunci bagian tabel yang lebih besar -- cukup lebih mahal sehingga dapat menjadi kontraproduktif.

Sunting:Pengeditan Anda pada posting asli membantu, tetapi tidak terlalu banyak. Pertama-tama, ukuran baris dan tingkat perangkat keras yang terlibat memiliki efek besar (memasukkan baris 8-byte ke selusin hard drive 15K SAS bergaris hanya sedikit lebih cepat daripada memasukkan satu baris megabyte ke satu hard drive kelas konsumen ).

Kedua, ini sebagian besar tentang jumlah pengguna simultan, sehingga pola penyisipan membuat perbedaan besar. 1000 baris yang dimasukkan pada jam 3 pagi mungkin tidak akan diperhatikan sama sekali. 1000 baris disisipkan secara merata sepanjang hari berarti lebih banyak (tapi mungkin hanya sedikit). 1000 baris disisipkan sebagai batch tepat ketika 100 pengguna lain membutuhkan data segera mungkin membuat seseorang dipecat (terutama jika salah satu dari 100 tersebut adalah pemilik perusahaan).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggabungkan data menurut rentang waktu di MySQL

  2. Tentukan SSL yang akan digunakan untuk jdbc di context.xml

  3. PDO::bindParam dalam loop foreach, semua nilai disetel sama?

  4. MySQL memperbarui baris yang sama oleh banyak pengguna seperti penghitung

  5. Laravel SQLSTATE [23000]:Pelanggaran batasan integritas:1452 Tidak dapat menambah atau memperbarui baris anak