Avrei bisogno di creare un database n grado di contenere quanti record voglio.
Parlo di miliardi di miliardi di record...Si può fare?
Avrei bisogno di creare un database n grado di contenere quanti record voglio.
Parlo di miliardi di miliardi di record...Si può fare?
Non usare un database. Utilizza un formato di archiviazione personalizzato. Nessun database è in grado di gestire quella mole di dati. Molto meglio realizzare qualcosa creato adhoc ed ottimizzato per le specifiche necessità del progetto.
Tipo?
Tipo il Google File System o il Petabox di Archive.org.
Molto dipende dal tipo di dati e dal tipo di elaborazioni che devi andare a fare.
Devo fare elaborazione abbastanza pesanti con stringhe.
L'applicazione che elabora è scritta in C++.
Potresti essere un po' più preciso?
Che tipo di elaborazioni (es. ordinamenti, ricerche, modifiche)?
Perchè ci sono così tanti dati (es. database genetici)?
La dimensione dei record è variabile o fissa?
In entrambi i casi, qual'è la dimensione media di ogni singolo record?
Che tipo di sistema di archiviazione avete previsto (es. distribuito)?
Le elaborazioni sono combinazioni difficili da spiegare, che prevedono sia la lettura che la scrittura sul database.
La dimensione dei record è fissa ma il campo ID dovrebbe poter contenere una quantità enorme di valori quindi non so se si può definire a dimensione fissa.
Il sistema di archiviazione non è distribuito.
La dimensione di ogni record è pari ad una stringa di lunghezza 100, ad un ID, e ad una chiave esterna (che è a sua volta un ID).
Questi ID dovrebbero assumere anche valori enormi.
Come chiavi ti bastano 64 bit (es. Int64), pari a circa 9 miliardi di miliardi?
Con una struttura di record tipo [Int64, Int64, CHAR(100)] hai un peso di 116 byte per record.
Una tabella con 1 miliardo di record avrà una dimensione di circa 108 Gb.
Sei davvero sicuro di dover gestire 1 miliardo di miliardo di record? La quantità di memoria richiesta per la sola archiviazione si aggira nell'ordine degli exabyte.
Si, al massimo il db si può spezzare in parti a mano a mano che diventa grande
potresti mettere su una web farm composta da una decina di server mysql ognuno con un HD SATA da 1 terabyte e controllati da un server con almeno 16 CPU per sveltire i calcoli...