Database identici per utenti multipli che leggono l'efficienza

0

Il nostro progetto utilizza un database statico (nessuna scrittura). Con molti utenti in realtà non abbiamo un problema di per sé a leggerlo. Se un database "si blocca" per ogni richiesta di lettura da parte di qualsiasi utente, non sarebbe più efficiente (anche se forse non percepibile) avere più database a cui ogni utente si connette individualmente?

Siamo dei noob del database. Ci scusiamo se questo è nel posto sbagliato. Stiamo progettando di utilizzare BoltDB o LMDB per il nostro progetto, ma personalmente sono rimasto incuriosito da questa idea.

    
posta victoroux 15.10.2015 - 18:49
fonte

3 risposte

5

A meno che il tuo database non sia misurato in Terabyte e il tuo numero di utenti simultanei sia astronomico, non preoccuparti.

I moderni database sono molto veloci, specialmente per la lettura.

Dovresti aspettare di avere effettivamente il problema, quindi misurare per confermare che hai il problema prima di provare a correggere qualcosa.

Se si eseguono più database di sola lettura in parallelo, ora si ha il problema di manutenzione per assicurarsi che siano effettivamente identici. Il debug della situazione quando non lo sono può essere doloroso.

    
risposta data 15.10.2015 - 18:57
fonte
2

Dovresti leggere più attentamente la documentazione del tuo database scelto. In LMDB, i lettori sono completamente senza blocco e senza attesa, quindi l'intera premessa "se un database blocca" non è valida.

    
risposta data 15.10.2015 - 21:18
fonte
1

Dal lato del database non ci sono blocchi bloccati per le istruzioni SELECT.

Proponendo di avere più database statici è come proporre di utilizzare file come (fogli di calcolo o testo normale) per rendere disponibili i dati a ciascun utente.

L'intero concetto del database è di avere un repository centralizzato per tutti gli utenti per "condividere" lo stesso database.

Se il tuo database è enorme e avrai una quantità enorme di utenti simultanei potresti dover pensare al clustering. Ma nel tuo caso, penso che non sia un'opzione.

Se leggi un po 'di LMDB e BoltDB, vedrai che si comportano come i mainframe, e il punto è di avere un singolo repository, anche di più, un singolo file per contenere tutti i tuoi dati.

Quando pensi ai database, pensa a centralizzare i dati e a distribuire il carico di lavoro.

Spero che questo ti aiuti a eliminare alcune nuvole.

    
risposta data 16.10.2015 - 00:43
fonte

Leggi altre domande sui tag