Supponiamo di avere una grande tabella con tre colonne: "nome_utente", "proprietà_utente", "valore_di_proprietà". Supponiamo anche che io abbia un sacco di utenti (diciamo 100.000) e molte proprietà (diciamo 10.000). Quindi il tavolo sarà enorme (1 miliardo di righe).Posso ottimizzare il mio database dividendo un grande tavolo in molti piccoli?
Quando estraggo le informazioni dalla tabella, ho sempre bisogno di informazioni su un particolare utente. Quindi, io uso, ad esempio where user_name='Albert Gates'
. Quindi, ogni volta che il server mysql deve analizzare 1 miliardo di righe per trovare quelle che contengono "Albert Gates" come user_name.
Non sarebbe opportuno dividere il grande tavolo in molti piccoli corrispondenti a utenti fissi?
quello che stai descrivendo si chiama partizionamento. Nei database si progetta una struttura a griglia intorno ai dati. Si imposta l'hardware per gestire questo tipo di problema. Credo che la parttioning (che è il gergo di SQL Server per quello di cui si sta parlando) è una funzionalità che non è in MySQL - o 7 anni fa quando sono passato a SQL Server - che so che lo supporta. –
@John Nicholas: http://dev.mysql.com/doc/refman/5.1/en/partitioning.html –
coool tyvm;) mysql ha partizionamento dopotutto –