de Hieu Nguyen (Jack)

Avantajele și dezavantajele diferitelor formate de date: valoare-cheie vs. tupluri

Cum sunt formatate datele sub capotă

Avantajele si dezavantajele diferitelor formate de date valoare cheie vs tupluri
Fotografie de Franki Chamaki pe Unsplash

Lucrez la Vasern (o bază de date client pentru React Native) mi-a oferit ocazia să încerc și să testez diferite formate de date care includ valoare-cheie, orientată pe coloane, document și tupluri. Fiecare format a fost conceput pentru a se potrivi unor scenarii diferite.

Criteriile acestor teste se concentrează pe performanță, capacitatea de a căuta valori și eficiența spațiului. În plus, nu este necesar să aveți chei și indici sortați pe disc. Acestea vor fi încărcate în memorie pentru căutare rapidă.

În această postare, voi recapitula avantajele și dezavantajele celor două formate comune: cheie-valori și format tuples. De asemenea, vă voi prezenta cheie-valoare etichetate, o extensie de valori-cheie cu căutare index, care beneficiază de formatul tupluri.

Magazin cheie-valoare

Avantajele si dezavantajele diferitelor formate de date valoare cheie vs tupluri
O colecție a depozitului cheie-valoare

Cheia-valoare stochează o colecție de perechi cheie-valoare, unde uneori valoarea reprezintă mai multe valori, separate prin delimitatori (adică o virgulă). Aceste perechi sunt organizate în blocuri cu lungime fixă ​​(pentru traversarea rapidă între înregistrări).

1611475625 481 Avantajele si dezavantajele diferitelor formate de date valoare cheie vs tupluri
Exemplu de aspect de stocare cheie-valoare cu un singur bloc („ 0” reprezintă valoare nulă / goală)

Avantajele depozitului cheie-valoare:

  • Formatul simplu de date face operațiunile de scriere și citire rapide
  • Valoarea poate fi orice, inclusiv JSON, scheme flexibile

Dezavantaje:

  • Optimizat numai pentru date cu o singură cheie și valoare. Este necesar un analizor pentru a stoca mai multe valori.
  • Nu este optimizat pentru căutare. Căutarea necesită scanarea întregii colecții sau crearea de valori de index separate

Magazin de date Tuples (RDBMS)

Formatul de date tuples există de mai multe decenii. Este utilizat în baze de date relaționale precum MySQL, Postgres etc.

1611475626 148 Avantajele si dezavantajele diferitelor formate de date valoare cheie vs tupluri
Un exemplu de format de date tupluri în baza de date relațională

Spre deosebire de formatul cheie-valori, se bazează pe schema predefinită pentru a organiza înregistrările în rânduri și valorile sale în coloane cu lungime fixă. Fiecare valoare reprezintă / de obicei o singură informație.

Avantajele magazinului de date tuples:

  • Formatul de date structurate ajută la traversarea rapidă a valorilor înregistrărilor
  • Optimizat pentru căutare (utilizarea obișnuită a SQL pentru interogarea înregistrărilor)

Dezavantaje:

  • Constrâns de structura schemei
  • Schimbarea schemei necesită de obicei rescrierea întregii baze de date

Magazin Key-Value etichetat

1611475626 628 Avantajele si dezavantajele diferitelor formate de date valoare cheie vs tupluri
Uhmm, TKVF (format etichetat-cheie-valoare)

Key-Value etichetat este o versiune extinsă de stocare Key-Value – are mai multe chei pentru o singură valoare. Cu alte cuvinte, are o cheie, indici (sau etichete) și o valoare corporală pentru fiecare înregistrare. Unde:

  • Cheie și Indici va fi încărcat în memorie la pornire
  • Valoarea corpului poate fi orice, dintr-un șir simplu, BSON / JSON sau valoare separată prin virgulă.

Avantajele magazinului Key-Value etichetat:

  • Semi-structurat, care ajută la traversarea rapidă a înregistrărilor și a indexurilor
  • Optimizat pentru căutare (prin taste și indexuri)
  • O înregistrare corp poate fi orice, ideal pentru scheme flexibile
  • Eficiența spațiului (cheie, indicii sunt organizați în coloane strânse)

Dezavantaje:

  • Schimbarea schemei care include indicii ar putea avea nevoie de migrarea datelor
1611475627 31 Avantajele si dezavantajele diferitelor formate de date valoare cheie vs tupluri
Un exemplu de format al etichetei-cheie-valoare

Vasern cu Magazin Key-Value etichetat

Vasern este o bază de date client pentru React Native. Cea mai recentă versiune a fost lansată sub beta pentru testare și folosea stocarea cheie-valoare.

În viitor Versiunea 0.3.0-RC, Vasern trece la un aspect de magazin etichetat valoare-cheie. Accentul este pus pe funcția sa puternică de căutare și eficiența spațiului.

Mai jos este o interogare demo. Este frumos, nu-i așa?

1611475627 164 Avantajele si dezavantajele diferitelor formate de date valoare cheie vs tupluri
Un demo de interogare Vasern

Concluzie

Există multe baze de date cu diferite formate de date de ales pentru o aplicație. Două formate comune sunt:

  • Perechi cheie-valoare – citire și scriere rapidă, dar nu optimizate pentru căutare. Este adesea folosit ca stocare simplă a datelor, NoSQL.
  • Tuples – acceptă mai multe tipuri de valori, indici, optimizați pentru căutare, dar lipsa flexibilității schemei. Utilizat în mod obișnuit pentru baze de date relaționale.

Prin combinarea punctelor forte menționate mai sus, Etichetate-cheie-valori formatul este flexibil cu schema de date și este capabil să caute înregistrări prin chei și indici. Acest lucru este adesea mai potrivit pentru baza de date a unui client.

Dacă ați găsit util acest articol, vă rugăm să faceți clic pe ? apăsați de câteva ori pentru a-i face pe alții să găsească articolul și să vă arate sprijinul! ?

Mulțumesc pentru lectură!