Kterou databázi

V @Collboardu nám začíná databáze přerůstat trochu přes hlavu, máme 150GB dat, 300 000 000 řádků, jenom databáze; (mnoho assetů (jako obrázku) máme úplně separátně na AWS S3).

Naše databáze má to specifikum, že máme obrovské množství řádků, kde každý obsahuje malinký druh informací (je to event-sourced). A do databáze se zapisuje velmi často a čte se po dávkách (vždy, když si někdo otevře tabuli).

Když jsme projekt začínali, nějaké super optimalizace jsme úplně neřešili, momentálně by se to ale možná hodilo? Používáme MySQL InnoDB (a nedělíme tabulky do partitions). Nejsme však na téhle databázi závislý, komunikace s databází probíhá přes docela dobře přepsatelnou vrstvu, dokážeme se přihodit na kteroukoliv SQL (a asi i hodně NoSQL).

Máte nějaký tip, co udělat, aby byla databáze:

💾 Spolehlivá a rychlá
💾 Škálovatelná do mnohem větší míry
💾 Optimalizovatelná (momentálně nám příkaz OPTIMIZE neprojde, protože ten potřebuje jednou tolik místa na disku)
💾 Redundantní
💾 Dobře zálohovatelná někam externě

Nebo zůstat u MySQL
🗃️ InnoDB vs. MyISAM
🗃️ Rozdělit DB na partitions po jednotlivých tabulích?

Autor

Pavol Hejný

Milovník technologií, Startuper ve vzdělávání, autor virtuální tabule Collboard.com, full stack vývojář a spoluorganizátor mnoha akcí např. CzechFutureTech.

2 komentáře u „Kterou databázi“

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *