Nylig ble betaversjonen av Ruby on Rails 8.0 lansert.
I forbindelse med lanseringen gjør Rails-skaper David Heinemeier Hansson (DHH) et stort poeng ut av hvordan de bruker databasen SQLite i produksjons-web-applikasjoner – både for caching, køer og som primærdatabase. Det skriver DevClass.
– Tidligere trengte Rails enten MySQL eller PostgreSQL, i tillegg til Redis, for å fullt utnytte all funksjonaliteten – som jobber, caching og WebSockets. Nå kan alt gjøres med SQLite, skriver DHH.
Stadig flere
Bruken av SQLite er ingen engangsforeteelse for 37Signals, som DHH er sjef for.
Han skriver at 37Signals nå bygger stadig flere applikasjoner med SQLite i produksjon, inkludert blant annet Campfire og Writebook.
SQLite brukes ofte som database i mobilapplikasjoner på Android og iOS og i desktop-apper, men det kan nå altså virke som stadig flere velger databasen til andre formål.
– Fremtiden har innhentet den, sa DHH i et intervju på YouTube, der han pekte på blant annet hvordan raskere disker (SSD-er) gjør at du nå ikke lenger trenger å bruke RAM til caching.
«Nå kan alt gjøres med SQLite.»
PostgreSQL 17 er ute: «Dette er en game-changer»
Alt i én fil
Før sommeren gikk også den kjente utvikleren Kent C. Dodds ut med en forsvarstale for SQLite i en bloggpost med tittelen "Why you should probably be using SQLite".
Dodds skrev at selv om MySQL og Postgres er bra løsninger, så vil mange som lager web-applikasjoner kunne forenkle livet sitt dramatisk ved å velge SQLite.
- SQLite er en SQL-basert database, men i motsetning til for eksempel Postgres så er hele databasen én enkelt fil. Derfor har mange historisk sett på det som en enkel database for enkle behov, skriver Dodds.
- Men ifølge Dodds har SQLite blitt videreutviklet mye de senere årene, og det har vært gjort mye for å gjøre det til en enkel database også for mer avanserte bruksområder.
- Databasen kan håndtere en filstørrelse på én million gigabytes (1 exabyte), og på grunn av måten databasen er laget på kan det noen ganger være raskere å hente ut data fra en SQLite-database enn fra filsystemet, skriver Dodds.
- Det at databasen er én enkelt fil på disken betyr at du som utvikler slipper å tenke så mye på å redusere antall databasespørringer for å øke ytelsen, og generelt mindre forsinkelser. En annen kjempefordel ifølge Dodds er at databasen blir en integrert del av applikasjonen din, med mindre kompleksitet som resultat.
Dodds peker riktignok også på en masse ulemper, som du kan lese mer om på bloggen hans.
– Det har gått 50 år. Det er på tide å rydde opp SQL!
Notion og Laravel
PHP-rammeverket Laravel og notatapplikasjonen Notion er to andre produkter som i det siste har gjort et poeng ut av å ha valgt SQLite. Riktignok til litt andre og litt mer tradisjonelle formål – som å gjøre lokal utvikling enklere, og til caching.
Da Laravel kom i versjon 11 før sommeren, ble SQLite valgt som standard database for lagring, og også databasedriver for blant annet caching.
– Det gjør at du kan begynne å bygge applikasjonen din umiddelbart etter at du har opprettet en ny Laravel-applikasjon, uten at du må installere tilleggsprogramvare eller lage nye databasemigrasjoner, skrev selskapet.
Notatappen Notion har lenge brukt SQLite i Mac- og Windows-appene sine, men nå i sommer annonserte de at de også har tatt i bruk SQLite for brukere som aksesserer Notion via nettleseren.
– Ved å bruke SQLite forbedret vi tid for sidenavigering med 20 prosent i alle moderne nettlesere, skrev Notion.
Dette ble gjort ved å bruke en WebAssembly-basert (WASM) implementasjon av sqlite3 til caching.
Jubler over Laravel-nyhet: – Med SQLite er dette unødvendig
Apropos ytelse: David Heinemeier Hansson viste under Rails World 2024 nylig til tester som viste at SQLite i mange tilfeller var konkurransedyktig med Redis når det ble brukt til caching. Du kan se foredraget hans her:
💬 Har du synspunkter på SQLite og valg av database til ulike formål, del dem gjerne med kode24s lesere i kommentarfeltet!