Wybór bazy danych
RDBMS
Oracle
MySQL
Microsoft SQL
PostgreSQL
IBM Db2
NoSQL
Document - MongoDB
Key-Value - Redis
Wide-Column - Cassandra
Graph - Neo4J
Timeseries - InuxDB
NewSQL
Spanner
CockroachDB
YugaByte
MemSQL
VoltDB
Kryteria wyboru
Dostępność w CAP
poprawna odpowiedź
zdrowy węzeł
odpowiedź w skończonym czasie
Wysoka dostępność (HA)
uptime
cały system
odpowiedź w zadanym czasie
Wysoka dostępność - strategie
master-slave (leader-follower)
multi-master (multi-leader)
hot-standby
Latencja vs model danych
Relacyjne bazy danych
Model relacyjny jest uniwersalny ale:
transakcje kosztują
analiza i wykonanie zapytań kosztuje
relacje kosztują
Jeśli to nam przestaje wystarczać (za mała latencja), albo zbyt duży ruch, należy szukać rozwiązania w baz No-sql.
Key-value (Redis)
Szukanie tylko po kluczu:
cache
sesje
liczniki (HyperLogLog)
tablice wyników
Wide column (Cassandra)
szukanie po kluczu
proste zapytania po wartościach
Dokumenty (MongoDB)
nieustrukturyzowane dane
modele hierarchiczne
synchronizacja (Google Firestore)
Grafy (Neo4j)
rekomendacje
sieci społecznościowe
wykrywanie oszustw
role i uprawnienia
Koszty operacyjne
utrzymanie
konfiguracja
infrastruktura
Wielo-modelowe bazy danych
CosmosDB
Yugabyte
FaunaDB
PostgreSQL
FoundationDB
Podsumowanie
z RDBMS jesteśmy w stanie zajść bardzo daleko
skalowanie przez modularyzację
latencja jest kluczowa
spójność
model danych
koszty operacyjne
Last updated