Motor: InnoDB. Perioadă. (Sigur, 1% din cazurile de utilizare sunt mai bine cu altceva, dar al tău nu pare să indice necesitatea unui alt motor.)
Fulg de zăpadă: Teribil, mai ales dacă trebuie să cauți pe o „gamă”. Vă rugăm să furnizați schema (de preferință prin AFIȚI CREATE TABLE
); Voi fi mai specific. (Atunci s-ar putea să fiu de acord că Fulgul de zăpadă este bun, dar mă îndoiesc.)
Schema stelelor -- Bine. Normalizarea șirurilor comune: bine. Normalizarea valorilor „continue” (date, int, floats): rău. Dar scopul este de a economisi spațiu pe disc, prin urmare accelerarea unor interogări.
10 GB/an - asta sună ca „câteva” rânduri pe secundă în medie. Greu, dar nu îngrozitor de greu. Adică, procesarea ETL nu pare că aveți nevoie de ajutor.
Depozitarea datelor -- http://mysql.rjweb.org/doc.php/datawarehouse
Eliminați datele vechi -- Aceasta este una dintre puținele utilizări pentru PARTIZARE
. http://mysql.rjweb.org/doc.php/partitionmaint
Împărțirea în tabele separate care sunt păstrate online -- probabil să fie o bătaie de cap, dar cu foarte puține beneficii.
Rapoarte costisitoare --> Tabele rezumative http://mysql.rjweb.org/doc.php/summarytables Tabelele rezumative sunt mult mai mici decât un tabel de fapte; este chiar acceptabil să se denormalizeze.
Columnstore -- Un mare plus este compresia semnificativă pe care o oferă. Dar nu văd 50 GB ca fiind foarte mari. Un alt avantaj al CS este „indexarea” automată a fiecărei coloane. Cu toate acestea, doar o coloană poate fi utilizată pentru eficiența pe două niveluri a căutării.
4 nuclee -- destule pentru InnoDB; mai multe nuclee ar fi utile pentru CS.
32 GB RAM -- Cu doar 50 GB de date și 10 GB/an -- Dacă tot ce faci este să te uiți la datele ultimului an, 32 GB sunt mai mult decât suficienti. Dacă scanați frecvent toți cei 50 GB, atunci vor fi multe I/O. Dacă implementați tabelele rezumative, atunci 32 GB este exagerat pentru majoritatea activităților. (Tabelele rezumative pot fi sub 10 GB și pot reveni la începutul datelor; prin urmare, foarte ușor de stocat în cache.)
32 GB + CS -- 50 GB vor deveni aproximativ 5 GB. (Dar nu știu dacă cei 32 vor fi exagerați.)
HDD vs.SSD -- SSD-ul este vizibil mai rapid.
Concluzie (și buget) -- Tehnicile menționate mai sus pot menține InnoDB pe 32 GB fredonând bine timp de câțiva ani.