2011-06-28 5 views
1

J'ai passé en revue une partie de la documentation de mysql mais je n'arrive pas à comprendre la différence entre les modes de partitionnement suivants: Key vs Hash vs List vs Range.Can quelqu'un peut-il expliquer en anglais pur?Msql Partitionnement - Clé vs Hash vs Liste vs Plage

Nous avons également le tableau suivant: Comment partitionnons-nous par forum_id?

CREATE TABLE IF NOT EXISTS `posts_content` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `post_id` int(11) NOT NULL, 
    `forum_id` int(11) NOT NULL, 
    `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=79850 ; 

vous Remerciant

Répondre

3

signifie clé et hachage que les enregistrements seront distribués au hasard, par exemple, si vous définissez 3 partitions pour forum_id, alors les enregistrements pour forum_id 1,3 et 7 peuvent aller à la partition 1 , pour 2 et 4 pour la partition 2, et pour 5 et 6 pour la partition 3. Dans la liste et la plage, vous définissez quelles données vont vers quelle partition, et elles sont préférées si vous partitionnez en fonction de la date, afin de vous assurer que les messages récents seront sur la même partition. En général, vous devez éviter les requêtes qui utilisent plus d'une partition. Pour cette raison, vous devez d'abord connaître vos modèles d'accès aux données, puis choisir le bon type de partitionnement.