Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Доброго времени суток.
Есть таблица следующей структуры
CREATE TABLE `UserDecorsButic` (
`decorButicUserId` bigint(20) unsigned NOT NULL auto_increment,
`user_id` bigint(20) unsigned default '0',
`decorButicId` int(10) unsigned default '0',
`buticUserId` bigint(20) unsigned default '0',
PRIMARY KEY (`decorButicUserId`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
В таблице 10 мил. записей.
Хотелось бы разбить таблицу с использованием PARTITION на 10 частей по полю user_id.
Как правильно составить запрос?
Еще есть такие вопросы. На сколько данное разбиение поможет исходя из нагрузки на MySql и исходя из нагрузки на диски сервера?
Заранее благодарю за ответ.
Неактивен
Всё зависит от того, как вы хотите ее разбить. Можно по HASH, можно по RANGE —
чего Вы пытаетесь добиться? Также учтите, что Вам нужно будет менять PRIMARY
KEY, чтобы он включал user_id (http://dev.mysql.com/doc/refman/5.1/en/ … -keys.html).
Неактивен
Сложный вопрос чего я пытаюсь добиться.
В основном у меня сейчас проблемы в высокой нагрузке на диски сервера от базы.
Хорошо примари поменяю. Только как изменить примари чтоб поле decorStreetUserId так и осталось с автоикрементом?
Как лучше сделать HASH или RANGE?
Отредактированно AlexsWulf (10.06.2010 10:25:01)
Неактивен
Зависит от того, что за таблица, как меняются данные. Например, если Вы хотите,
чтобы заполнялись все разделы, надо брать HASH. Если записи добавляются в
конец и Вы хотите, чтобы менялся один раздел — RANGE. Неплохо было бы смотреть,
что реально нагружает базу. Обычно изменение запросов улучшает производитель-
ность куда больше, чем разбиение.
Неактивен
Нужно заполнять все разделы по пользователям.
Т.е. насколько я понял все данные одного пользователя будут находится в одном разделе.
Это HASH.
Если можно подскажите синтаксис написания запроса для данного случая.
А как можно посмотреть что грузит базу?
Неактивен
paulus написал:
Также учтите, что Вам нужно будет менять PRIMARY
KEY, чтобы он включал user_id (http://dev.mysql.com/doc/refman/5.1/en/ … -keys.html).
Таки минуточку подождите.
Помнится, мы с тобой обсуждали RANGE на UNIXTIMESTAMP от колонки с датой. Дата нифига на уникальный ключ не похожа.
Получается, если хочешь PARTITIONING по дате (или вообще по чему-нибудь неуникальному), то в таблице не должно быть уникальных ключей?
Неактивен
Страниц: 1