Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
миграция с merge на partitioning (Po4emu4ka) 21/05/2012 - 13:01:06
      Re: миграция с merge на partitioning (Akina) 21/05/2012 - 17:08:08
      Re: миграция с merge на partitioning (Po4emu4ka) 22/05/2012 - 10:28:50
      Re: миграция с merge на partitioning (Akina) 22/05/2012 - 23:22:18

> Original message text:
> From: Po4emu4ka - 21/05/2012 - 13:01:06
> Subject:миграция с merge на partitioning
> -----------------
> Всем привет. Хочу попросить совет.
> У меня была старая merge-табличка на старой базе. Сейчас поставили новую базу и я хочу перейти на partitioning.
> Но выдаёт ошибку...
>
> CREATE TABLE `tablename` (
> `user` varchar(20) NOT NULL default '',
> `msgorid` text,
> `status` int(5) default NULL,
> `id` bigint(20) NOT NULL auto_increment,
> `ts` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
> PRIMARY KEY (`id`),
> KEY `ts_idx` (`ts`),
> ) PARTITION BY HASH(MONTH(ts)) PARTITIONS 12;
>
> Выкидывает, что "Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed".
>
> Подскажите, как лучше реализовать разбиение по месяцам? (учитывая, что раз в какое-то время будет запускаться скрипт и подчищать старые ненужные данные, освобождая место партиции под данные нового года)
>
>
>


From: Akina - 21/05/2012 - 17:08:08
Subject:миграция с merge на partitioning
-----------------
По-моему, в сообщении об ошибке вполне вменяемо описана проблема.

Предложение. Заведите поле (tinyint достаточно). Триггером (before insert/update) экстрагируйте из ts номер месяца. И рубите на партиции по этому полю.

PS. Хэширование-то зачем?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
41312



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |