On 2022-06-23, Alberto Salvati <
zzz...@gmail.com> wrote:
> Per contro, rischi di avere un backup bello grosso che potrebbe essere
> scomodo da spostare.
Non è tanto questo, ma l'opportunità di avere dei BLOB dentro il database. Mi
spiego. Se stiamo archiviando roba (e.g. fatture in PDF) potrebbe avere senso
l'approccio che dici, perché comunque sono dati in sola lettura che potrebbero
avere un accesso poco frequente. Ma se stiamo parlando e.g. delle immagini di un
sito (e.g. un ecommerce), averle su file system permette di sfruttare il caching
del web server, che sicuramente è più testato di molte altre soluzioni fatte a
mano
> Ancora, la complessità di una eventuale ACL la tieni lato db, punto, mentre
> avendo un file system ti tocca, presumibilmente, gestire anche i grant sulle
> cartelle...
Dipende da come accedi a quei dati, ovvero potresti non dover gestire alcuna ACL
perché comunque è l'applicativo (che salva le ACL su DB) a preoccuparsene
> Certo, potresti tenere le immagini non su un file system "locale" ma su
> qualche storage tipo S3/ Glacier di AWS...
> A quel punto non avresti problemi di backup e spazio, ma saresti vincolato
> ad una piattaforma cloud che sarebbe INACCESSIBILE in assenza di
> connettività, connettività che fin troppo spesso è data per scontata dal
> parco buoi....
Tieni conto che esistono sistemi S3 100% compatibili ed installabili in locale,
tipo MinIO. Di fatto, l'unica differenza a livello applicativo è l'url dove
connettersi
> Inoltre, usando il filesystem, devi gestire con molta molta cura il
> salvataggio dei path sul database , normalizzando in modo da evitare update
> massive qualora spostassi i file su path diversi...
Senza offesa, ma mi sembra un problema triviale e facilmente gestibile
> ..come, sconsigli un vero "database della madonna"..??? :-D
> Seriamente, xche no? Io non ci ho mai avuto a che fare e sono curioso...
Per tre motivi:
- Il primo è tecnico. Rispetto a MySQL, MariaDB è sempre un po' indietro a
livello di funzionalità. Per fare un esempio, il supporto a JSON è stato
introdotto solo nel 2017, quando in MySQL era disponibile almeno dal 2015.
- Il secondo è di governance: il ciclo di release segue una numerazione tutta
loro. Per farmi capire, il supporto a JSON che citavo prima è stato
introdotto nella release 10.2.7, ovvero in una sottorelease della 10.2.
Personalmente non mi piace una gestione delle release del genere, ovvero il
supporto a JSON me lo sarei aspettato in 10.3.0 (considera che ora siamo a
10.2.44)
- Il terzo è più personale: tutte le volte che ho provato ad usarlo, non ci
sono mai riuscito (ovvero nemmeno mi partiva) e sono tornato a MySQL. Magari
sono stato sfigato io, ma se al primo tentativo MySQL mi parte e sono sulla
stessa macchina, forse non è proprio tutta colpa mia...
Devo ammettere che il secondo punto è nato mentre leggevo il changelog di JSON
su MariaDB, ma rimane comunque un punto valido a mio avviso
Enrico