SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 10.04.2012 21:28:05

voyager
Участник
Зарегистрирован: 10.04.2012
Сообщений: 7

Большая таблица на Archive Engine и выборки из нее

Стоит вопрос грамотного проектирования структуры базы для хранения большого количества логов (миллионы записей) и последущего вытягивания статистики из этой огромной кучи.
Пока остановился на Archive таблице, после того как прочитал, что начиная с 5.1 этот движок поддерживает один праймари ключ на автоинкрементный столбец.
Я никогда раньше не работал с этим движком, поэтому, заранее извиняюсь за дилетантские вопросы.
И вот собственно в чем "незадача". При выборке единственного значения по автоинкрементному полю (type=const) этот ключ используется и все хорошо (select * FROM rawlog where id=10000  все ок). Но при выборке диапазона получается type=ALL, Using where в Extra и проход по всем записям в rows (select * FROM rawlog where id>10000 AND id<11000 - все печально)... Может ли данный ключ в archive движке использоваться для выборки диапазонов значений?
з.ы. может ли меня как-то спасти от фуллскана всей таблицы при выборе диапазонов партиционирование архивной таблицы?

Неактивен

 

#2 12.04.2012 10:46:36

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

Re: Большая таблица на Archive Engine и выборки из нее

Насколько я понимаю, в ARCHIVE не честный индекс, а просто способ поддержать
возможность создания автоинкрементного столбца. Соответственно, диапазоны
не поддерживаются.

Партиционирование приведет к фуллскану отдельных диапазонов.

Неактивен

 

#3 12.04.2012 16:04:44

voyager
Участник
Зарегистрирован: 10.04.2012
Сообщений: 7

Re: Большая таблица на Archive Engine и выборки из нее

Спасибо

Неактивен

 

Board footer

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