---
title: "Jeg var (er) gal nok til å lage min egen SQL-server"
url: https://kwhorne.com/blog/eg-var-gal-nok-til-a-lage-min-egen-sql-server
author: "Knut W. Horne"
published: 2026-07-11T12:03:31+02:00
updated: 2026-07-11T14:18:20+02:00
category: "Elyra SQL server"
language: nb-NO
---

# Jeg var (er) gal nok til å lage min egen SQL-server

> MySQL har begrensninger, Postgres har begrensninger, og de kommersielle vil ha hånden din permanent i lommeboken. Så jeg gjorde det eneste fornuftige: Jeg bygde en selv. Møt Elyra SQL Server.

<p>Det finnes en uskreven regel i utviklerverdenen: <em>Du skal ikke skrive din egen database.</em> Den står rett ved siden av «du skal ikke skrive din egen kryptering» og «du skal ikke parse HTML med regex». Fornuftige regler, laget av fornuftige folk.</p><p>Jeg har brutt den. Med vilje. Over lang tid. Og nå er den sluppet: <strong>Elyra SQL Server</strong> — en MySQL-kompatibel SQL-server skrevet i Rust, der hele databasen bor i én eneste krasjsikker fil.</p><p>La meg forklare hvordan en ellers noenlunde oppegående mann fra Bergen endte opp her.</p><h2>Problemet: Alle alternativene har en hake</h2><p>Jeg har brukt databaser i alle år. Og jeg har vært innom hele buffeten:</p><p><strong>MySQL</strong> er som en gammel arbeidshest. Trofast, kjent, står i alle stallene. Men den har begrensninger som begynner å merkes godt i 2026. Den ble designet for en verden der «søk» betydde <code>LIKE '%noe%'</code> og ingen hadde hørt om embeddings.</p><p><strong>Postgres</strong> er hakket bedre — la det være sagt, Postgres er et solid stykke håndverk. Men også der støter jeg på funksjonelle begrensninger, og skal du ha moderne ting som skikkelig vektorsøk, ender du fort opp med å skru på extensions, tredjepartskomponenter og en liten hage av tilleggsverktøy som alle skal vedlikeholdes, oppgraderes og krangles med.</p><p><strong>MS SQL Server</strong> er teknisk sett helt ok. Men lisensmodellen? Den er omtrent like vennlig som en parkeringsvakt på overtid. Og <strong>Oracle</strong> — vel, Oracle er selskapet som fant opp konseptet «du eier ingenting, du leier alt, og revisoren vår kommer på besøk».</p><p>Fellesnevneren for de kommersielle er at du havner i lommen på storebror. Big Tech bestemmer prisen, betingelsene og retningen. Jeg har bygget hele Elyra-familien på det motsatte prinsippet: dine nøkler, dine data, din maskin, ingen telemetri, ingen som ringer og vil «snakke om lisensieringen din».</p><p>Da ble spørsmålet ubehagelig enkelt: Hvis ingen av databasene passer — hva gjør man da?</p><h2>Løsningen: Man er gal nok til å bygge en selv</h2><p>Så det gjorde jeg. Ikke over natten — dette er ikke et helgeprosjekt som ble litt ute av kontroll (ok, det er <em>teknisk sett</em> et prosjekt som ble litt ute av kontroll). Dette er bygget opp stein for stein over lang tid, slik man bygger noe man faktisk skal stole på.</p><p>Og her er poenget som gjorde at jeg turte: De etablerte databasene har vært på markedet i tiår. Det er både deres styrke og deres forbannelse. De drar på tiår med arkitekturbeslutninger tatt i en helt annen tid, og sliter med å holde seg i toppform med tanke på hvor vi faktisk er i 2026. Vektorsøk, embeddings, hybrid retrieval — alt dette er skrudd på i etterkant, som en spoiler på en Volvo 240.</p><p>Jeg fikk starte med blanke ark. Og med blanke ark kan man bygge inn det moderne fra dag én.</p><h2>Hva er egentlig Elyra SQL Server?</h2><p>Kort fortalt:</p><ul><li><p><strong>Hele databasen er én fil.</strong> Én krasjsikker ACID-fil (<code>.edb</code>) med multi-version concurrency. Ingen datakatalog med 400 mystiske filer. Backup? Kopier filen. Ferdig.</p></li><li><p><strong>Den snakker MySQL wire protocol.</strong> Det betyr at <code>mysql</code>-klienten, DBeaver, Workbench og hvilken som helst MySQL-driver i hvilket som helst språk fungerer rett ut av boksen. Du trenger ikke lære noe nytt for å koble til.</p></li><li><p><strong>Skrevet i Rust.</strong> Ingen garbage collector som tar seg en pust i bakken midt i en spørring. Sub-millisekund point lookups.</p></li><li><p><strong>Full SQL.</strong> Joins, korrelerte subqueries, CTE-er med <code>WITH RECURSIVE</code>, window functions, set operations, serializable transactions. Dette er ikke en lekedatabase.</p></li><li><p><strong>Replikering og HA</strong> er innebygd, for de som vil skalere lesing eller sove godt om natten.</p></li></ul><p>Og så kommer godbitene — tingene som var hele grunnen til at jeg begynte.</p><h2>AI-native fra grunnen av, ikke skrudd på i etterkant</h2><p>Her er hvor 2026-delen kommer inn:</p><p><strong>Vektorsøk er førsteklasses borger.</strong> <code>VECTOR(n)</code>-kolonner med både eksakt og HNSW-basert approksimativt nærmeste nabo-søk. Semantisk søk bor <em>i</em> databasen, ikke i en separat tjeneste du må drifte ved siden av.</p><p><strong>Hybrid search i én spørring.</strong> <code>HYBRID(text, 'query', vec, vector)</code> fusjonerer fulltekst og vektorsøk med Reciprocal Rank Fusion — og respekterer <code>WHERE</code>-filteret ditt. Det er hele RAG-retrieval-stacken i én SQL-setning. Ingen Elasticsearch. Ingen reranker. Ingen tre ekstra Docker-containere som skal mates og stelles.</p><p><strong>Embeddings rett i SQL.</strong> <code>ai_embed('tekst')</code> kaller et OpenAI-kompatibelt endepunkt — i skyen eller mot en lokal Ollama/vLLM-server — og returnerer vektoren. Du genererer query-vektorer og lagrede verdier direkte i SQL. (Og ja, selvsagt kan du kjøre alt lokalt. Dette er fortsatt Elyra.)</p><p><strong>Parallell OLAP.</strong> Store aggregeringer kjører gjennom en parallell, strømmende motor. Analytiske spørringer uten et eget datavarehus ved siden av.</p><p>Slik ser det ut i praksis:</p><pre><code class="language-bash"># Start serveren på én fil
$ elyrasql serve --data mydb.edb
✓ MySQL protocol on 127.0.0.1:3306

# Koble til med helt vanlig mysql-klient
$ mysql -h127.0.0.1 -P3306
mysql&gt; SELECT id FROM docs
    -&gt; ORDER BY embedding &lt;-&gt; VECTOR '[…]' LIMIT 5;
</code></pre><p>Det er hele oppsettet. Ingen konfigurasjonsfiler på 900 linjer. Ingen tuning-guide du må lese før du tør å starte den.</p><h2>Og prislappen?</h2><p>Gratis. Åpen kildekode. Ligger på GitHub.</p><p>Ingen lisensrevisjon. Ingen «per core»-matematikk. Ingen selger som ringer i februar. Du laster ned en tarball for Linux (x86_64 eller ARM64), eller bygger fra kildekode hvis du er den typen. Versjon 0.9.3 er ute nå, stemplet stabil.</p><h2>Var det verdt det?</h2><p>Å bygge en database er litt som å bygge sin egen båt. Alle sier du burde kjøpt en ferdig. Alle har rett, statistisk sett. Men så står du der en dag med noe som flyter, som er bygget nøyaktig slik <em>du</em> vil ha det, uten en eneste kompromiss du ikke selv har valgt — og da forstår du hvorfor folk gjør det likevel.</p><p>Elyra SQL Server har alt jeg vil ha i en moderne SQL-server. Ikke alt alle andre vil ha — alt <em>jeg</em> vil ha. Og det viser seg at når man bygger for seg selv med ærlige prinsipper, ender man ofte opp med noe andre også vil ha.</p><p>Ta en titt på <a target="_blank" rel="noopener noreferrer nofollow" href="https://elyracode.com/sql/server">elyracode.com/sql/server</a>, eller gå rett på koden på <a target="_blank" rel="noopener noreferrer nofollow" href="https://github.com/kwhorne/ElyraSQL">GitHub</a>. Og hvis du finner noe rart — det heter issues, ikke kritikk. Jeg tåler begge deler.</p>
