SQLite: tek bir dosyada veri tabanı
Kısaca: SQLite hiç sunucu gerektirmeyen ve tüm verileri tek bir dosyada saklayan küçük, gömülü bir SQL veri tabanıdır.
Biraz daha ayrıntılı: Çoğu veri tabanı (PostgreSQL, MySQL) programların bağlandığı kendi sunucusu olarak çalışır. SQLite ise doğrudan programın içinde duran ve bir dosyayı okuyup yazan bir kütüphanedir. Dünyada en yaygın kullanılan veri tabanıdır: her akıllı telefonda, tarayıcıda ve birçok uygulamada.
Ayrıntılı
Özellikler
- Kurulum yok, yapılandırma yok, sunucu yok.
- Bir veri tabanı dosyası (
.db,.sqlite), kopyalaması ve yedeklemesi kolay. - Büyük ölçüde normal SQL, işlemler (ACID), dizinler, tetikleyiciler, view’lar, JSON işlevleri destekler.
- Okumalarda ve küçük ile orta veri miktarlarında (birçok gigabayta kadar) çok hızlı.
- Kamu malı, çok iyi test edilmiş.
Örnek
sqlite3 test.db
sqlite> CREATE TABLE animal (id INTEGER PRIMARY KEY, name TEXT, age INT);
sqlite> INSERT INTO animal (name, age) VALUES ('Mia', 4);
sqlite> SELECT * FROM animal;
Python’da sqlite3 standart kütüphanenin parçasıdır:
import sqlite3
con = sqlite3.connect('test.db')
print(con.execute('SELECT name FROM animal').fetchall())Sınırlar
SQLite birçok okuyucuya ama aynı anda yalnızca bir yazıcıya izin verir (WAL kipinde okuyucular bu arada devam eder). Birkaç sunucudan çok sayıda eşzamanlı yazma için gerçek bir veri tabanı sunucusu daha iyidir. Kendi kullanıcı yönetimi yoktur; koruma dosya sistemindedir. Türler esnektir (“type affinity”), katı değildir, STRICT tablolar hariç. Ağ dosya sistemleri dosya için risklidir.
Kullanımlar
Mobil uygulamalar, masaüstü programları, tarayıcılar (yer imleri, geçmiş), yapılandırma ve önbellek depolama, küçük ve orta web siteleri, testler, dosyalarla veri analizi ve prototipler. libSQL/Turso ve Litestream (çoğaltma) gibi modern varyantlar ve uzantılar SQLite’ı sunucu ortamlarına da getirir. Bir uygulama büyüdüğünde SQL çoğu zaman PostgreSQL’e aktarılabilir.
Ayrıca bak: SQL, PostgreSQL, İşlemler ve ACID, MySQL