Добрый день,скорость выполнения запроса типа:
"select * from t1 where time<1148469082 and time>1148468120"
будет зависить от кол-ва записей в базе не попадающих в этот интервал?Если да, то можно ли какнибуть иначе организвать базу, дабы снять эту зависимость?
PS
в таблице несколько миллионов записей.
тип таблицы InnoDB, если это имеет значение..
>Добрый день,
>
>скорость выполнения запроса типа:
>"select * from t1 where time<1148469082 and time>1148468120"
>будет зависить от кол-ва записей в базе не попадающих в этот интервал?
>
>
>Если да, то можно ли какнибуть иначе организвать базу, дабы снять эту
>зависимость?
>
>PS
>в таблице несколько миллионов записей.
>тип таблицы InnoDB, если это имеет значение..Очевидно, есть смысл помимо юникс-тайм, также хранить дату в таблице отдельными полями в виде года, месяца, и , может быть, дня. И по этим полям провести индексацию.
>
>Очевидно, есть смысл помимо юникс-тайм, также хранить дату в таблице отдельными полями
>в виде года, месяца, и , может быть, дня. И по
>этим полям провести индексацию.Такие поля есть, но я их сделал и использовал исключительно для группировки.
Благодарю за совет )
>
>>
>>Очевидно, есть смысл помимо юникс-тайм, также хранить дату в таблице отдельными полями
>>в виде года, месяца, и , может быть, дня. И по
>>этим полям провести индексацию.Если там есть индексация + несколько миллионов записей, то помоему, будет весьма затруднительна вставка в таблицу :(
если так, то надо еще пересматривать структуру БД.
Возможно разбивать данные на отдельные таблицы (например по месяцам (таблица меньше - вставка быстрее))а для SELECTа использовать VIEW (кажется 5й MySQL уже поддерживает)
Привет,1. Чем меньше полей в WHERE клаузе, тем быстрее. Так что не разбивайте дату на куски.
2. MySQL-у почти все равно будет ли дата в timestamp или в datetime. Я лично предпочитаю второе, легче на консоли работать.
3. Скорость запроса будеть несколько зависеть от общего количества записей, но если у вас иднекс по данному полю и если запрос типа "больше чего-то и меньше того-то", то количество записей не сыграет особой роли.
4. несколько миллионов записей - это маленькая таблица, перестраивать базу нет смысла. Ваш запрос должен быть отработан в любом случае не более, чем за секунду. Пример: на машине с P4/3GHz при собственной загрузке CPU другими процессами примерно на 50%, извлечение данных с таким правилом из таблицы с ок. 3 миллионами записей занимает 0.5-1.5 секунды.
WWell,