SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 17.01.2009 15:32:57

shutdown
Завсегдатай
Зарегистрирован: 29.05.2008
Сообщений: 46

Partition pruning не срабатывает

Добрый день. Есть табличка логов, разбитая по дням :  PARTITION BY LINEAR HASH (LogDay) PARTITIONS 366

Так вот, заметил интересный эффект: выборка нужных партиций при запросе с условием where LogDay  between dayofyear(now())-10 and dayofyear(now())-1 работает нормально.
Но стоит увеличить диапазон дней более 10, pruning перестает работать и юзает все партиции! Например, between dayofyear(now())-11 and dayofyear(now())-1 или between dayofyear(now())-10 and dayofyear(now()) и т.д.
В документации такого поведения не обнаружил. Говорится, что оптимизация должна работать в случае hash - партиций по целочисленным полям, как в моем случае(`LogDay` smallint(6) NOT NULL).
Версия сервера: 5.1.28-rc

Почему так происходит и как лечить, если возможно?

Неактивен

 

#2 19.01.2009 14:53:29

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

Re: Partition pruning не срабатывает

Да, очень интересное поведение. Похоже, в алгоритм вшито это число. На 5.1.30 происходит то же
самое.

Уже описанных багов на bugs.mysql.com не нашел, попробуйте запостить свою.
Ну и, конечно же, обновитесь до .30 версии. Хоть и не полечит проблему, но все-таки это будет первое,
что они попросят Вас сделать.

Неактивен

 

#3 20.01.2009 15:02:10

shutdown
Завсегдатай
Зарегистрирован: 29.05.2008
Сообщений: 46

Re: Partition pruning не срабатывает

Запостил баг (http://bugs.mysql.com/bug.php?id=42210)
Действительно, задано константой при компиляции.
Пока хотят поднять лимит до 32, а если повезет, сделают настраиваемым параметром smile

Неактивен

 

#4 20.01.2009 15:42:57

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

Re: Partition pruning не срабатывает

[26 Jun 2008 17:05] Sergey Petrunia
At the moment we have no intent to fix this in 5.1

We intend to fix this issue in MySQL 6.0 by
- introducing a tunable server parameter (most likely)
- changing the default from 10 to some greater value (likely)

Не похоже, что в ближайшее время sad

Неактивен

 

Board footer

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