migliorabile ha scritto:
La domanda non ha senso.
La soluzione 2 E' TOTALMENTE SBAGLIATA.
Tu ragioni in un'UNICA dimensione: n' di record letti.
MA devi considerare ANCHE il tempo necessario per CARICARE il record in memoria perche' COMUNQUE i record che processi in un certo istante DEVONO essere in memoria, INDIPENDENTEMENTE dal modo in cui sono stati caricati (memory mapped file, lettura diretta, DMA, ...).
Una cosa e' caricare 100 record da 100 byte, ed un'altra e' caricare 100 record da 1000 byte!
Inoltre non tieni conto dei meccanismi ESPLICITAMENTE PROGETTATI per velocizzare le query: gli indici!
In pratica, pretendi di usare soluzioni "casereccie" per evitare di usare dei sistemi "stadard" ed "ottimamente collaudati"
innanzi tutto grazie per la risposta, era ovvio che in entrambi i casi avrei dovuto indicizzare le colonne.
Mentre aspettavo una vostra risposta mi sono adoperato a creare uno script di python che riempisse le tabelle proprio come nel mio problema, con numero randomici e utenti casuali, il risulato è... la tabella che contiene più righe è grande 1gb con 15.300.000 di record, mentre la tabella che si sviluppa in colonne contiene solo 510.000 record ed è grande 265mb, ovviamente ho indicizzato tutto a dovere, quindi dovrei preferire più colonne per salvaguardare lo spazio? (Considerando che il tempo di esecuzione della query è in entrambi i casi di 0,008 ms)