@rastinza@qoto.org
I'm not really a db expert, but hey, bytes are cheap.
The tens of millions of rows don't really bother me, db engines can do pretty smart stuff when the data is somewhat uniform.
120 columns now that kinda bothers me. Is really 120 the actual dimension of the basis of the space you're modeling?
And also, any chanche of some of those columns being of a more "archivistic" than "search" interest? If so you might transform those into a ugly string, and if there is some value repetition even catalog and deduplicate lotsadata
@lysander so, the 120 columns is data associated to another entity. It's a 1-1 relationship, I just created a new table to separate the ugly stuff.
It is mainly data storage, but search of some of those columns is expected. Not all those columns will be searched, but it is difficult to say which ones will be useful for search and which ones will not, also because what I'm searching depends on the project at hand.
Actually I expect to add maybe another 100 more...
No data duplication, at least not amongst different rows. Some columns are derived from others, but the computation while not really expensive relies on a bunch of other data external to the database which I don't really want to rely on.
Data is mostly numeric and long bit arrays.
I may get and try to find what is actually useful, but I also want to actually use the DB without spending one year tuning it.
I don't know, I'm generally afraid of databases and don't really know how to work with them: this is the first DB I work on with more than a couple tables.
@lysander let's put it this way: all data can readily be recomputed. I'm storing it to save computation time as computing 100 of those rows takes around one minute and that is not feasible every time I need to filter by one parameter.
@lysander aspetta aspetta aspetta, questo è molto interessante e non ci avevo mai pensato!
Effettivamente ho dei valori che rientrano in piccoli range, diciamo 0-100 o qualcosa del genere.
Alcuni sono double, molti sono int.
Dici che ho dei vantaggi scambiando un int per una referenza a un'altra tavola? O magari solo mi vale per i double immagino.
Li dovrei mettermi a vedere.
I bitarray pure possono avere duplicati tra le righe, però non so quanti e non so se il gioco vale la candela. Perché ora sto usando un hash di 1024 bit, questo si che serve per cercare; chiaramente essendo un hash ho dei duplicati su grandi numeri. Però li non credo che mi valga la pena spostare a un altra tavola, uso l'hash perché è veloce e probabilmente il merge rallenterebbe troppo le ricerche.
Le ricerche sono sostanzialmente filtri, oltre questo valore, sotto quello. Probabilmente siano sempre le stesse e mi possa salvare il risultato direttamente nel DB, non lo faccio giusto per avere flessibilità sui parametri che posso variare.
Beh ci penserò un po' su. Ho molti alti problemi da risolvere... Dati invalidi che in qualche modo entrano nel DB, inconsistenze tra tavole...
Per farla semplice diciamo che ho una tavola con i miei elementi e due altre una con calcoli da fare l'altra con calcoli effettuati. Il totale delle due dovrebbe essere uguale al numero di elementi. Invece è superiore.
Mi devo mettere a vedere tutto il codice di connessione al database e trovare dove diamine sto aggiungendo cose che non dovrei aggiungere ed eventualmente come rimuovere cose che non dovrebbero esserci.
@GustavinoBevilacqua vogliamo inaugurare il nuovo tag #DBMolecole? Ti prometto molte bestemmie per i mesi a venire. (Ok, ci sto già lavorando da tempo ma il DB l'ho sempre lasciato lì per ultimo che non volevo metterci mano)
@rastinza@qoto.org @GustavinoBevilacqua@mastodon.cisti.org
Dici che ho dei vantaggi scambiando un int per una referenza a un'altra tavola?
Dipende (la risposta preferita dagli informatici).@rastinza@qoto.org @GustavinoBevilacqua@mastodon.cisti.org
Altro toot perché poi diventava davvero un megapippone.
Sull'hash ti consiglio di fare molta attenzione. Se ti serve per rispondere alla domanda "questa riga esiste già?" valuta la possibilità usare un'indice sulle colonne che utilizzi per calcolarti l'hash. Perdi la visibilità sull'hash, ma i db sono molto furbi nel costruirsi indici leggeri ed efficienti.
Quanto alla spazzatura che entra nel db, ti capisco e posso assicurarti che capita spesso. Vincoli e chiavi sono difficili da scrivere ma una volta fatti stan lì e possono aiutare a ridurre di molto lo schifo che viene inserito
@lysander @GustavinoBevilacqua sicuro che a seguito di certi calcoli l'identificativo univoco che uso per riferirmi alle molecole mi cambia o qualcosa del genere. Dovrò cercare di renderlo più univoco.