Rispondere direttamente alla tua domanda è difficile dividere un database relazionale, fisicamente può essere fatto in modo relativamente semplice se hai l'hardware corretto e un database di livello Enterpise (hai bisogno di Enterprise Edition di SQL Server, per esempio non della versione standard) . Ma farlo correttamente richiede qualcuno che comprenda i sistemi di database ad alte prestazioni e l'ottimizzazione delle prestazioni e qualcuno che comprenda a fondo la struttura dei dati (si desidera che gli elementi correlati finiscano nella stessa partizione). Il tuo attuale design può o non può prestarsi a partioning senza modifiche. Un database progettato senza i campi appropriati per eseguire il partizionamento avrebbe bisogno di essere aggiunti. Pianificare quale sia il modo migliore per partizionare, progettare le partions e testarle può richiedere molto tempo anche se il codice SQL effettivo per impostare le partizioni è relativamente semplice.
Esistono molti database relazionali di dimensioni terabyte e generalmente sono partizionati per le prestazioni. Tuttavia, per fare ciò correttamente, è necessario che qualcuno con competenze avanzate nel database non solo partiziona i dati ma si assicuri che le query siano ottimizzate per le prestazioni e che il progetto funzioni correttamente con il carico richiesto. Una struttura di dati mal progettata su hardware inadeguata rispetto a query mal progettate (ad esempio quelle con sottoquery correlate) non funzionerà mai, indipendentemente dal modo in cui si suddividono i dati. La maggior parte degli sviluppatori di applicazioni non ha le competenze necessarie per progettare correttamente questa roba e quindi si lamentano che i database relazionali non sono abbastanza veloci. Questo è solo un segno di incompetenza nella progettazione del database, non della reale capacità del database di esibirsi con un gran numero di utenti e un'enorme quantità di dati. Ho visto siti web mal progettati e performanti, vuol dire che Java o C # non possono essere utilizzati per produrre un sito ben progettato?
Se hai già i dati in un database relazionale, è probabilmente meglio assumere un esperto di database per configurare e gestire i tuoi database per una crescita che provi a convertire in una soluzione noSQL. La necessità di partizionare è irrilevante rispetto alla scelta di utilizzare un archivio di valori chiave. Vuoi solo usarli per alcuni casi speciali specifici. Per i dati che devono essere affidabili e coerenti internamente, un archivio di valori chiave è un disastro in attesa di accadere. Non dimenticare che esiste un costo enorme associato alla conversione dei dati relazionali in un nuovo tipo di metodo di archiviazione dei dati e verranno introdotti nuovi bug, alcuni dei quali possibili errori fatali. Se il tuo database corrente non è in grado di gestire il carico previsto (ed è proprio qui che mi viene in mente Access, hai notato mySQL e SQL Server entrambi in grado di gestire enormi database se progettati correttamente), allora è meno rischioso convertirlo in un'azienda più grande tipo di database relazionale piuttosto che convertire un archivio di valori-chiave.
Per i dati che possono perdere consistenza senza un problema enorme come i siti di social networking (è fastidioso se perdono il tuo ultimo post ma non sono critici per il business) o motori di ricerca (Google non sta andando fuori dal business perché ha perso il riferimenti al tuo sito web temporaneamente), quindi noSQL e gli archivi di valori chiave vanno bene, ma non troverai molte aziende che si fidano delle loro transazioni finanziarie importanti per questo tipo di data store e c'è una ragione per questo. Inoltre, l'uso di una struttura di valori-chiave all'interno di un database relazionale spesso causa problemi di prestazioni in quanto non ottimizzati per quel tipo di dati.
C'è un posto per entrambi i tipi di database, ma memorizzano due tipi di dati molto diversi. Non è tanto la velocità (che può essere ottimizzata per essere eccellente per entrambi i tipi di database da qualcuno che sa veramente cosa sta facendo) quanto riguarda il modo in cui i dati vengono utilizzati e interrogati e che tipo di controlli interni per la qualità dei dati e la coerenza sono necessari. E non vi è alcun motivo per cui non è possibile utilizzare entrambi nello stesso progetto, uno per i dati che non devono essere ATOMIC e uno per i dati transazionali di cui è necessario applicare le relazioni chiave.