10 puan yazan xguru 2024-07-13 | 6 yorum | WhatsApp'ta paylaş
  • SQLite ile birkaç gün uğraştıktan sonra fark ettiğim bazı şaşırtıcı dezavantajlar
  • ALTER COLUMN desteklenmiyor. Bir kolonu değiştirmek için resmî öneri: "yeni tablo oluştur"
  • DROP CONSTRAINT desteklenmiyor. Bir kısıtı kaldırmak için resmî öneri: "yeni tablo oluştur"
  • SQLite'ta kolonların veri tipi yok. Veri tipleri (yalnızca 5 tane var) sadece değerlerde bulunduğu için her şey her yere girebiliyor
  • Desteklenmeyen ya da var olmayan tiplerde kolon isterseniz, uyarı veya hata vermeden yanlış bir işlem yapıyor. CREATE TABLE my_table (id bigserial, messages jsonb[]) gibi bir şema oluşturmak çalışıyor gibi göründüğü için ilk gün SQLite'ın serial ve dizileri desteklediğini yanlış sanmıştım
  • CREATE TABLE my_table (...) STRICT kullanarak yalnızca desteklenen 5 tipten birine izin verebilirsiniz: integer, real, text, blob, any
  • SQLite'ın yeni jsonb desteği son dönemde çok ilgi gördü. Ancak Postgres'ten farklı olarak jsonb aslında bir veri tipi değil; yerleşik jsonb* fonksiyonlarına girdi/çıktı olan bir biçim. Kalıcı olarak saklandığında, 5 temel tipten biri olan blob oluyor
  • timestamptz gibi başka çok önemli tipler de eksik. Tarih/saat istiyorsanız Unix timestamp integer ya da ISO8601 biçiminde string olarak saklıyorsunuz ve bu işlemler için çeşitli yerleşik fonksiyonlar sunuluyor
  • SQLite'ın streaming ile ilgili etkileyici yetenekleri var ve bunları denemek istiyorum, ama ilk DX deneyimi kesinlikle biraz rahatsız ediciydi
  • Bazen bir anlatıya ne kadar güçlü biçimde kapıldığımızı merak ediyorum. Örneğin, Postgres gerçekten dünyanın en iyi veritabanı mı? Bu deneyim kesinlikle benim kanaatimi daha da pekiştirdi. Evet, en iyisi Postgres

6 yorum

 
tested 2024-07-16

SQLite değil de daha çok SQLHeavy isteniyormuş gibi bir his veriyor.

 
princox 2024-07-15

Böyle veritabanları da var, şöyle veritabanları da var. SQLite'ın da kendine özgü bir felsefeyle yönetildiğini düşündüm.

 
regentag 2024-07-13

Neden SQLite'ı Postgres gibi kullanmaya çalıştılar ki?

Bu, sanki Linux'u ilk kez kullanan birinin “Hancom Office de düzgün çalışmıyor, oynadığım oyunlar da açılmıyor. Demek ki işletim sistemi dediğin Windows!” demesi gibi bir his veriyor.

 
savvykang 2024-07-13

Hacker News’te ortaya çıkan SQLite abartısı (hype) biraz fazla değil mi? SQLite’ın ayrı olarak işletilen bir RDBMS’in yerini alabileceği iddiası, 2022’den beri Hacker News’te sık sık paylaşılıyor.

1: https://news.ycombinator.com/item?id=31318708
2. https://news.ycombinator.com/item?id=31152490
3. https://news.ycombinator.com/item?id=34812527
4. https://news.ycombinator.com/item?id=36208568

Diğerleri: https://hn.algolia.com/?dateEnd=1720854657&dateRange=custom&da…

 
eajrezz 2024-07-13

Postgres ya da MySQL gibi veritabanı ürün ailelerini kullanmanın gereğinden fazla geldiği hissedilen durumlarda, SQLite'ın fazlasıyla cazip bir alternatif olabileceğini düşünüyorum.

Örneğin küçük servislerde managed DB maliyeti gereksiz derecede yüksek kalabiliyor; bunu doğrudan işletmek de ayrıca yük oluyor.

Buna karşılık SQLite'ın belli bir ölçeğe kadar performans açısından yetersiz kalmadığı söyleniyor; özellikle Litestream gibi araçlar kullanıldığında işletim yükü de neredeyse kalmadığı için avantajlı görünüyor.

 
savvykang 2024-07-14

Replikasyon özelliğine kadar gitmeye bile gerek yok; sqlite yedekleme açısından da pratik ve yalnızca servis daemon durumunu yönetmek yeterli olduğu için gerçekten iyi, ama JPA'ya bağlamak için şunu bunu yapmak gerektiğinden başkasına devredilmesi gereken projelerde kullanamadığımı fark ettim. Yazıdaki gibi veri şemasını biraz daha sıkı ele alma iradesi varsa, o tür kullanım için de pek uygun değil.

Az önceki yorumu yarım bırakmıştım; sqlite hakkındaki asılsız söylentilerin sanki sqlite her derde deva bir şeymiş gibi bir yanılsama yarattığını söylemek istiyordum.