Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Тактика секционирования / 2 сообщений из 2, страница 1 из 1
04.06.2015, 19:14:31
    #38976732
ClonCD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тактика секционирования
Добрый день.
MySQL 5.5
Пытаюсь разбить на секции таблицу с ~120 млн. записей. В дальнейшем предполагается увеличение в разы, а эту таблицу приходится иногда соединять с ней самой, поэтому нарезать по месяцам (25-30 млн записей в месяц) кажется мне неплохой идеей.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
ALTER TABLE my_history
  PARTITION BY RANGE COLUMNS (`event_time`)
  (
    PARTITION p1  VALUES LESS THAN ('2015-01-01'),
    PARTITION p2  VALUES LESS THAN ('2015-02-01'),
    PARTITION p3  VALUES LESS THAN ('2015-03-01'),
    PARTITION p4  VALUES LESS THAN ('2015-04-01'),
    ...
  );



В итоге нарываюсь на "The total number of locks exceeds the lock table size". Насколько я понимаю, MySQL пытается заблокировать построчно, и просто не хватает места, чтобы все строчки перечислить.
Вопросы:
1. Где именно не хватает места? Размер таблицы ~ 20Гб, ОЗУ -- 40 Гб. Гугление дало английские форумы, где пишут что эта ошибка означает нехватку оперативки.
2. Там же советуют сделать lock tables my_history, чтобы не блокировать построчно. Насколько это оправдано?
3. Могу ли я каким-то образом обойти запрет на использование lock tables в эвенте?
4. Можно ли отрезать по одной секции? Сделать VALUES LESS THAN ('2015-12-01'), а потом REORGANIZE PARTITION по одному месяцу сверху.

Спасибо
...
Рейтинг: 0 / 0
07.06.2015, 18:37:23
    #38978489
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тактика секционирования
ClonCD,

альтер тейбл обычно меняет структуру данных, и в такой ситуации файл данных таблици всегда пересоздаёться... так что зачастую, лучше вместо альтер на таблицу с большим обьёмом данных, сразу делать голую таблицу с новой структурой, и потом перекидывать туда данные... можно по частям...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Тактика секционирования / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]