SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.05.2011 23:27:46

elslepas
Участник
Зарегистрирован: 31.10.2010
Сообщений: 16

Partition и index

Добрый день.
Имеестя таблица состоящая из 4-x столбцов
column_1
column_2
column_3
column_4

Создаем ключи
UNIQUE(column_1, column_2)
INDEX(column_3)

Делаем партиционирование по хешу от суммы уникального ключа
PARTITION BY HASH(column_1+column_2)
PARTITIONS 3

Получаем 6 файлов:
table#p0.MYD
table#p0.MYI
table#p1.MYD
table#p1.MYI
table#p2.MYD
table#p2.MYI

MYD - дата, MYI - индекс

Я так понял, что уникальный ключ будет храниться почастям в файлах table#p0.MYI, table#p1.MYI, table#p2.MYI
а при его использовании будут обрабатываться все три файла или только файл, удовлетворяющий
условию where

Помогите, пожалуйста, разобраться вот с каким вопросом:

1. Где будет храниться обычный ключ INDEX по полю column_3?
2. Что случиться если индекс окажется больше, чем объем оперативной памяти?
3. Партицирование VS партиционирование. Как правильно?

Неактивен

 

#2 04.05.2011 01:19:43

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Partition и index

1. Там же, где и уникальный индекс — в файликах MYI. В нем будут только
те строки, которые попадают в раздел.
2. Будет подгружаться с диска по мере необходимости.
3. Правильно «разбиение» или «partitioning».

Неактивен

 

#3 04.05.2011 14:30:05

elslepas
Участник
Зарегистрирован: 31.10.2010
Сообщений: 16

Re: Partition и index

Спасибо. У меня возникла ошибка при создании индекса. Создаю индекс по 19 столбцам и получаю:
#1070 - Too many key parts specified; max 16 parts allowed
Нашел решение только здесь:
http://forums.mysql.com/read.php?35,102 … msg-159384
Необходимо увеличить MAX_REF_PARTS и MI_MAX_KEY_SEG, только где взять эти параметры?

Неактивен

 

#4 04.05.2011 19:57:46

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Partition и index

Это параметры сборки, нужно взять исходники, заменить значения и перекомпилировать
сервер. Но, кажется, когда Вам нужно такое количество столбцов, можно пересмотреть
схему.

Неактивен

 

#5 06.05.2011 23:01:04

elslepas
Участник
Зарегистрирован: 31.10.2010
Сообщений: 16

Re: Partition и index

Дело в том, что баз будет большой(около 70ГБ) и я сделал партицирование по хешу суммы 4 столбцов, входящих в уникальный индекс.
Данные столбцы будут использоваться при каждом запросе. Остальные 15 будут испльзоваться редко.
Все 19 столбцов просто необходимы и будут выводиться при каждом запросе. Поэтому я и подумал о перекрывающем индексе, как о способе оптимизации.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson