Primerjava zbirk podatkov
SQLite: največkrat uporabljena zbirka podatkov, ki jo večina skrbnikov prezre
SQLite je vdelana zbirka podatkov v vsakem brskalniku, telefonu in plošči letala na zemlji, in doktrina, da je igrača, je najbolj zanesljiv znak, da nekdo ni pregledal njenih meja. Brez strežnika, na podlagi datotek, na transakcijah in absurdno stabilen med različicami: spada v presenetljiv delež dela v majhnih sistemih, disciplina okoli datotek in zaklepanja pa je edina poštena krivulja učenja.
Ključne točke
- Brez strežnika je funkcija, ne odsotnost: klic knjižnice stran, brez demonov, brez omrežne vtičnice, brez konfiguracije; za enoprocesno analitiko in majhne aplikacije se površina uvajanja približuje ničli.
- Sočasnost je omejitev, ki jo omejuje: način WAL doda sočasne bralnike z enim zapisovalcem; N-Threads-of-writers v več neodvisnih procesih takoj diši po dizajnu: datoteka baze podatkov ni namenjena gostovanju na več mestih.
- Iskrenost shranjevanja: datoteka JE baza podatkov, zaradi česar so varnostne kopije preproste (kopije v živo prek API-ja .backup ali VACUUM INTO, ne cp med pisanjem!) in neprevidna namestitev katastrofalna (zaklepanje datotek razreda NFS je folklora; lokalni disk ali trdno razumevanje dejstva, da semantika zaklepanja ne deluje prek NFS, je obvezno).
- Stabilnost zapisa datoteke je redek dosežek: datoteke, napisane pred desetletji, se odpirajo še desetletja; poteki dela forenzičnih/raziskovalnih podatkov, shrambe konfiguracij in predpomnilniki aplikacij imajo koristi od oblike, ki nikoli ne preseneti cikla posodabljanja.
- Ni mogoče domnevati, da je majhen: SQLite poganja letalsko elektroniko in predpomnilnike na ravni brskalnika; praktične zgornje meje se običajno pokažejo okoli obremenitve sočasnega pisanja ali zahtev HA, ne skupne velikosti podatkov (obstajajo operacije terabajtnega razreda, ki presegajo mejo predpomnilnika).
- Kam sodijo meje: analitika z enim zapisovalcem, lokalna shramba aplikacij, robne naprave, stopnja MVP od prototipa do proizvodnje; v trenutku, ko se pojavi več strežnikov ali sočasnih zapisovalcev v realnem času, pošteno preidite na PostgreSQL ali MySQL, namesto da vsiljujete format.
Terenska beležka
Datoteka SQLite, ki je sedem let prenašala floto naprav, nikoli ni bila ozko grlo, vendar je vsaka napaka varnostnega kopiranja, ki smo jo opazili, prišla iz cp med pisanjem namesto discipline VACUUM INTO za varnost lokalne datoteke. Pravilne varnostne kopije v živo z orodjem, ne z distribucijsko navado.
Pogosta vprašanja
Ali lahko SQLite poganja moje majhno spletno mesto?
Da, pravilno oblikovane enodelne aplikacije, ki zahtevajo branje, so dobre; način napake je obremenitev več zapisovalcev ali potrebe HA, ne promet sam po sebi.
Ali je varno v pomnilniku NFS?
Pogosto ne: semantika zaklepanja datotek preko NFS je dokumentiran lokalni folklorni vir korupcije. Hranite baze podatkov v lokalnih datotečnih sistemih.
Kako ga pravilno varnostno kopiram?
.backup API/razred ali VACUUM INTO stabilno datoteko; zunanja orodja kopirajo med zapisovanjem, če je spoštovana disciplina zaklepanja. Nikoli ne domnevajte, da je cp atomičen med pisanjem.
Ali obstaja resnična zgornja meja uspešnosti?
Branje je izjemno dobro (WAL omogoča sočasne bralce), pisanje serializira pri enem zapisovalcu; velike razmestitve preživijo z vzorci razdelitve WAL plus ali vzorci zunanjega obsega WAL).
Kako Kinetikatech pomaga s primerjava zbirk podatkov
Ne morete postati eksperta za primerjava zbirk podatkov: Izbire mehanizma baze podatkov za gostovanje delovnih obremenitev, v primerjavi z jamstvi za pravilnost, operativno težo in dejanskim stroškom: vgrajeni motorji proti strežnikom, MySQL proti PostgreSQL, SQL proti shrambam dokumentov, plus študija starega primera, ki se vedno znova vrača. Nekatere za to obstaja Upravljanje strežnikov in Optimizacija hitrosti spletnega mesta: nastavitev, krepitev, monitoring in osebna strega dne in noči.