Страница 1 из 1

Оптимизация структуры БД :)

Добавлено: 27 янв 2005, 10:42
Linco
Вопрос скорее абстрактный, есть простая табличка(проектировал не я :) ):
data, id, 6 счетчиков bigint
Первичный ключ(data,id). Каждые 5 мин туда пишутся данные счетчиков(если интересно счетчики каскадов FrameRelay) данные пишутся так:
20.01.05 01:00:00 1 <счетчики>
20.01.05 01:00:00 2 <счетчики>
и т.п............
20.01.05 02:00:00 1 <счетчики>
20.01.05 02:00:00 2 <счетчики>
и т.п............
Все это вертится на MySQL. Вопрос в следующем:
1. получим ли мы ускорение организовав например уникальный индекс
id autoinc, и например записывая реальное время т.е. минуты. По идее индексы должны быть более производительны.
2. Получим ли мы ускорение переведя БД на FB.
3. Каким еще образом сожно ускорить выборку.
ЗЫ Выборка простая Select * from table where (date>'' and date<'')

Добавлено: 27 янв 2005, 11:00
kdv
- вставка быстрее чем на MySQL нигде не будет (если в нем транзакции не используются)
- индекс замедлит вставку но разумеется ускорит выборку.

Re: Оптимизация структуры БД :)

Добавлено: 27 янв 2005, 12:08
Merlin
Linco писал(а):Вопрос скорее абстрактный, есть простая табличка(проектировал не я :) ):
data, id, 6 счетчиков bigint
Первичный ключ(data,id).
1. получим ли мы ускорение организовав например уникальный индекс
id autoinc, и например записывая реальное время т.е. минуты. По идее индексы должны быть более производительны.
ЗЫ Выборка простая Select * from table where (date>'' and date<'')
Если речь только об этой выборке, то за MySQL не знаю, на FB практически одинаково всё будет. Но имея в виду запросы с условиями на id и с сортировкой по data я бы всё-таки сделал PК по id (некоторое ускорение за счёт глубины индекса при условиях по id всё же будет на _очень_ больших объёмах данных) и неуникальный индекс по data. Возможно даже 2 - ascending и descending - если нужны будут запросы с разными сортировками, только больше или только меньше, MAX и MIN.