Abbiamo una semplice tabella di prodotti. Ogni prodb ha il suo ID e categoria unici. Gli utenti spesso cercano per categoria, quindi voglio dividere i prodotti per categoria. Ogni categoria in una partizione, ad es.Come suddividere la tabella MySQL per colonna che non è nell'indice univoco
Come faccio? Perché ovviamente ho una chiave primaria nella mia colonna ID e ho bisogno del mio ID univoco. Non unico in ogni categoria.
Tuttavia partitiong ha questa limitazione che "ogni chiave univoca sul tavolo deve utilizzare ogni colonna espressione di partizionamento della tabella".
Bene, questo non rende il partizionamento un po 'inutile? O mi sta sfuggendo qualcosa? Cosa dovrei fare?
http://dev.mysql.com/doc/refman/5.1/en/partitioning-limitations-partitioning-keys-unique-keys.html
Certo, ma id saranno quindi non essere unico, ma è solamente unico in categoria, che io non voglio. Sostituisci In smetterà di funzionare allora. Nel caso in cui la categoria di prodotto cambierà, il prodotto verrebbe duplicato. Ma comunque, grazie per la tua risposta. –
No. L'aggiunta di un campo a una chiave primaria non può renderla non unificata, come ho scritto nella mia risposta. Perché non provi e vedi che funziona? Ho usato quel partizionamento su una grande tabella di log (tra 2 e 5 milioni di record) per partizionare di giorno: permette molto velocemente 'SELECT' di giorno, e cancellazione estremamente veloce di tutti i record per un giorno particolare (semplicemente lasciando cadere una partizione). – Jocelyn
Oh no, so che PRIMARY KEY sarà ancora unico. Ma l'ID che ora sarà solo parte della chiave smetterà di essere univoco in quanto un valore diverso nella colonna della categoria può rendere la chiave univoca anche se l'ID sarà lo stesso. Ma sembra che MySQL funzioni in quel modo (anche se non ha molto senso) e dovrò conviverci. Comunque, grazie per il tuo impegno. –