Sebelum saya mengajukan pertanyaan, izinkan saya menjelaskan pikiran saya tentang SQLite terlebih dahulu.
Saya kebetulan menyukai alat yang kecil, cepat dan, yang lebih penting, hanya memiliki fungsi yang benar-benar diperlukan. Itu sebabnya saya suka SQLite dan saya kurang suka MS-SQL.
Sebagai contoh: MS-SQL mungkin memiliki lebih banyak fungsionalitas, skalabilitas, dll., Tetapi juga dapat merepotkan jika Anda tidak beruntung. Tentu saja, saya tidak mengatakan bahwa instalasi yang sulit adalah alasan untuk tidak memilih database tertentu.
Jangan salah paham: MS-SQL adalah produk berkualitas baik. Saya sangat berpengalaman dengan MS-SQL; Saya memahami produk dengan sangat baik sebagai seorang profesional. Saya hanya lebih suka kurang dalam beberapa keadaan di mana itu tidak terlalu dibutuhkan (= tidak banyak pengguna, <10-15).
Seberapa banyak fungsi basis data yang Anda gunakan? Dalam pengalaman saya, seringkali hanya SQL biasa (SELECT, INSERT, dan UPDATE).
Saya suka SQLite. Sangat cepat menarik. Sangat mudah untuk "menginstal". Saya pikir SQLite dapat melakukan lebih dari yang diklaim dapat dilakukannya. Mengapa hanya menggunakannya untuk aplikasi satu proses / satu pengguna? Lagi pula: tidak banyak aplikasi yang secara konstan mengakses database.
Misalnya: pertimbangkan aplikasi ERP dengan, katakanlah, 15 pengguna. Mengapa SQLite tidak bisa digunakan untuk itu? Mari kita hadapi itu: dalam pengalaman profesional saya sebagian besar waktu pengguna aplikasi semacam ini akan mengakses database sekitar 5-10% dari total waktu mereka menggunakan aplikasi. Di 90-95% lainnya mereka hanya menonton informasi di layar, memasukkan data dalam kotak / formulir dan ketika mereka menyimpan input mereka yang tidak lebih dari 1 detik waktu database. Fe: 1,5 menit waktu input vs. 1 detik menghemat waktu.
Jika file database SQLite terkunci selama "menghemat waktu" pengguna lain yang perlu mengakses database hanya menunggu, tetapi mereka tidak menyadari bahwa karena waktu tunggu akan sangat kecil (tidak terlihat). Dalam kode Anda hanya perlu berurusan dengan waktu yang mungkin "sibuk" dari database, untuk menghindari pengecualian, tetapi itu tidak sulit untuk dilakukan.
Beberapa pria, yang harus berpikir sama seperti saya, bahkan telah membangun solusi client-server untuk SQLite: SQLitening . Ini membuat saya lebih yakin bahwa saya mungkin tidak membodohi diri sendiri.
Tentu saja ada aplikasi intensif basis data di mana SQLite tidak cocok. Tapi seperti yang saya pikirkan sekarang, banyak aplikasi multi-pengguna, jika mereka tidak melebihi 15 pengguna atau lebih, seharusnya cukup baik dengan SQLite.
Banyak pelanggan kami tidak menghabiskan banyak uang untuk perangkat keras, jadi saya sering menemukan satu-satunya server dengan semua yang ada di dalamnya (Exchange, SQL (s), klien, dll.) Dan karena itu hampir "kehabisan napas". Jika saya bisa mengirimkan produk yang tidak memiliki persyaratan sistem tinggi, maka pelanggan saya akan senang. SQLite tidak menambah bobot (setidaknya tidak banyak), MS-SQL. Jadi saya tidak akan memilih SQLite karena gratis, murah, atau mudah dipasang. Saya akan memilihnya karena alasan praktis / teknis.
FYI: Dalam profesi saya, kami menjual produk (adat dan standar, sebagian besar terkait dengan ERP) kepada pelanggan di mana, rata-rata, tidak lebih dari 5-6 orang akan menggunakan produk tersebut. Ada beberapa pengecualian, tetapi tidak lebih dari 10-15 pengguna.
Pertanyaannya adalah: Apakah saya benar dalam berpikir bahwa saya dapat menggunakan SQLite untuk beberapa aplikasi multi-user seperti contoh yang saya jelaskan? Apakah ada kelemahan teknis yang harus saya ketahui? Apa pengalaman Anda (negatif atau positif) yang akan membantu saya membuat pilihan yang tepat?
Pembaruan: Tolong jangan melihat ini sebagai penilaian negatif dari database lain. Mereka kebanyakan adalah produk-produk bagus. Cukup bagikan pemikiran saya di sini dan tertarik dengan pendapat Anda tentang ini.