11 poin oleh GN⁺ 2024-11-14 | 1 komentar | Bagikan ke WhatsApp
  • Salah satu kesalahpahaman yang sering dimiliki orang tentang SQLite adalah anggapan bahwa "SQLite adalah database yang hanya mengizinkan satu koneksi", sehingga orang jadi enggan menggunakannya
  • Ini membingungkan (apa arti "koneksi" di sini?) dan juga merupakan klaim yang salah dalam banyak aspek
  • Operasi baca (Read Operations)
    • SQLite sepenuhnya mendukung banyak operasi baca secara bersamaan
    • Data dapat dibaca secara simultan dari beberapa "koneksi" tanpa menimbulkan konflik atau masalah
  • Operasi tulis (Write Operations)
    • SQLite menggunakan write lock pada level DB (Write Lock) saat melakukan operasi tulis
    • SQLite tidak mengizinkan beberapa operasi tulis secara bersamaan, sehingga hanya satu "koneksi" yang dapat melakukan operasi tulis pada satu waktu
    • Biasanya ini tidak menjadi masalah karena IMMEDIATE TRANSACTION dapat dimulai
    • Dalam kasus ini, SQLite dapat mencoba ulang di antrean untuk memperoleh write lock
      • (Dengan cara ini, operasi tulis dapat dijalankan secara otomatis saat write lock dilepaskan)

1 komentar

 
savvykang 2024-11-15

https://www.sqlite.org/lockingv3.html

5.0 Menulis ke file database
Untuk menulis ke database, pertama-tama proses harus memperoleh lock SHARED seperti yang dijelaskan di atas. Setelah memperoleh lock SHARED, proses harus memperoleh lock RESERVED. Lock RESERVED menandakan bahwa proses tersebut akan menulis ke database pada suatu waktu di masa depan. Hanya satu proses pada satu waktu yang dapat memegang lock RESERVED. Namun, proses lain tetap dapat terus membaca database selama lock RESERVED dipertahankan.