Msql Partitioning - ключ против хэша, список против диапазона - PullRequest
1 голос
/ 28 июня 2011

Я просмотрел некоторые документы по mysql, но не могу понять разницу в следующих способах разбиения: Ключ против хэша, список против диапазона. Может ли кто-нибудь объяснить на чистом английском языке?

Также у нас есть следующая таблица: Как разделить по 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 ;

Благодарю вас

1 Ответ

3 голосов
/ 28 июня 2011

ключ и хеш означает, что записи будут распределены случайным образом, например, если вы зададите 3 раздела для forum_id, то записи для forum_id 1,3 и 7 могут перейти в раздел 1, для 2 и 4 - в раздел 2, идля 5 и 6 - к разделу 3. В списке и диапазоне вы определяете, какие данные поступают в какой раздел, и они предпочтительнее, если вы делите на основе даты, чтобы гарантировать, что все последние сообщения будут в одном разделе.Как правило, вы должны избегать запросов, которые будут использовать более одного раздела.По этой причине вы должны сначала узнать свои шаблоны доступа к данным, а затем выбрать правильный тип разделения.

...