Когда использовать какую модель разбиения mysql - PullRequest
1 голос
/ 23 марта 2010

Хорошо, ребята, только начните с разбиения некоторых таблиц в MySQL. Есть несколько способов описать это, но я не могу найти более практичный подход. - На какой тип данных наилучшим образом влияет каждый способ разделения?

Или это не имеет значения?

Ссылка: http://dev.mysql.com/tech-resources/articles/performance-partitioning.html

Ответы [ 2 ]

4 голосов
/ 23 марта 2010

Это в точности зависит от того, какая у вас проблема с производительностью.

Разбиение MySQL 5.1 позволяет вам разбить только первый бит первичного ключа. Это означает, что если вы хотите использовать любую полезную форму разбиения, часто желательно иметь составной первичный ключ.

Один из наиболее распространенных вариантов использования - это устаревшие данные, которые могут быть очень дорогими в неразделенных случаях. В этом случае вам нужно будет запустить первичный ключ с указанием даты / времени и раздела на нем.

Затем вы можете удалить строки, программно удалив старые разделы.

В других случаях ваши общие запросы могут извлечь выгоду из сокращения раздела.

Помните, что вы не можете исправить все проблемы с производительностью с разметкой; это не волшебство. Для запросов, которые не извлекают выгоду из сокращения раздела, каждый раздел должен быть запрошен. MySQL не делает это параллельно, поэтому обычно это происходит так же медленно, как использование таблицы без разделов.

  1. Определите, какие именно проблемы с производительностью
  2. Решите, сколько улучшений будет достаточно, чтобы их исправить
  3. Решите, сколько регрессии производительности вы могли бы допустить в других случаях использования
  4. Тестируйте, тестируйте, тестируйте и тестируйте снова на ваших производственных данных на производственном оборудовании на различных установках
  5. Повторяйте, пока не будете удовлетворены.
  6. Выполнить соответствующее функциональное тестирование; релиз!
3 голосов
/ 22 ноября 2010

Позвольте мне поделиться с вами этим отличным сообщением о разделении на основе времени / даты и подразделении с огромными потоками данных. Он демонстрирует, как разбиение может быть хорошим решением для масштабируемых архитектур.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...