Soruyu sormadan önce SQLite hakkındaki düşüncelerimi açıklayayım.
Küçük, hızlı ve daha da önemlisi, sadece gerçekten gerekli işlevselliğe sahip araçları seviyorum. Bu yüzden SQLite'yi ve MS-SQL'i biraz daha az seviyorum.
Örneğin: MS-SQL çok daha fazla işlevselliğe, ölçeklenebilirliğe vb. Sahip olabilir, ancak şanssızsanız kurulumu da bir acı olabilir. Tabii ki, zor bir kurulumun belirli bir veritabanını seçmemenin bir nedeni olduğunu söylemiyorum.
Beni yanlış anlama: MS-SQL kaliteli bir üründür. MS-SQL ile çok deneyimliyim; Ürünü bir profesyonel olarak çok iyi anlıyorum. Gerçekten gerekli olmadığı bazı durumlarda daha az tercih ederim (= çok fazla kullanıcı yok, <10-15).
Bir veritabanının işlevselliğinin ne kadarını gerçekten kullanıyorsunuz? Deneyimlerime göre bu genellikle normal SQL'dir (SELECT, INSERT ve UPDATE).
SQLite'yi seviyorum. Büyüleyici hızlı. "Kurulumu" son derece kolaydır. SQLite, iddia edebileceğinden daha fazlasını yapabileceğini düşünüyorum. Neden sadece tek işlem / tek kullanıcı uygulamaları için kullanılır? Sonuçta: pek çok uygulama sürekli bir veritabanına erişmiyor.
Örneğin: 15 kullanıcılı bir ERP uygulaması düşünün. SQLite neden bunun için kullanılamıyor? Kabul edelim: mesleki deneyimimde, çoğu zaman bu tür bir uygulamanın kullanıcıları, uygulamayı kullandıkları toplam sürenin yaklaşık% 5-10'u için veritabanına erişeceklerdir. Diğer% 90-95'te ise sadece ekrandaki bilgileri izliyor, veriyi bir ızgaraya / forma giriyor ve girişlerini kaydettiklerinde veritabanı süresinin 1 saniyeden fazla değil. Fe: 1,5 dakikalık giriş süresi ile 1 saniyelik tasarruf süresi.
SQLite veritabanı dosyası "zamandan tasarruf" sırasında kilitlenirse, veritabanına erişmesi gereken diğer kullanıcılar beklemekle birlikte beklemezler, çünkü bekleme süresi çok küçük olacaktır (fark edilmez). Kodda, istisnaları önlemek için veritabanının olası "meşgul" zamanıyla uğraşmak zorundasınız, ancak bunu yapmak zor değil.
Benim gibi aynı düşünmesi gereken bazı adamlar, SQLite: SQLitening için bir istemci-sunucu çözümü bile geliştirdi . Bu beni kendimi kandırmayacağım konusunda daha ikna etti.
Tabii ki SQLite sığmayan veritabanı yoğun uygulamalar vardır. Ama şimdi düşündüğüm gibi, çok kullanıcılı birçok uygulama, 15 kullanıcıyı aşmıyorsa, SQLite ile iyi çalışmalıdır.
Müşterilerimizin çoğu donanıma fazla para harcamaz, bu yüzden genellikle üzerinde her şey (Exchange, SQL (ler), istemciler, vb.) İle tek bir sunucu ile karşılaşıyorum ve bu nedenle neredeyse "nefes nefese". Yüksek sistem gereksinimleri olmayan bir ürün teslim edebilseydim, müşterim mutlu olurdu. SQLite herhangi bir ağırlık eklemez (en azından fazla değil), MS-SQL ekler. Bu yüzden SQLite'ı seçmem, çünkü ücretsiz, ucuz veya kurulumu kolaydır. Pratik / teknik nedenlerden dolayı seçerdim.
FYI: Mesleğimde, müşterilere ortalama olarak en fazla 5-6 kişinin ürünü kullanacağı ürünler (özel ve standart, çoğunlukla ERP ile ilgili) satıyoruz. Bazı istisnalar vardır, ancak en fazla 10-15 kullanıcı vardır.
Soru: Açıkladığım örnek gibi çok kullanıcılı bir uygulama için SQLite kullanabileceğimi düşünüyor muyum? Bilmem gereken herhangi bir teknik dezavantaj var mı? Doğru seçimi yapmama yardımcı olacak deneyimleriniz (olumsuz veya olumlu) nelerdir?
Güncelleme: Lütfen bunu diğer veritabanlarının olumsuz bir yargısı olarak görmeyin. Çoğunlukla iyi ürünlerdir. Sadece düşüncelerimi burada paylaşıyorum ve bu konudaki görüşlerinizle ilgileniyorum.