The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"скорость выполнения запроса"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"скорость выполнения запроса"  
Сообщение от Ден on 25-Май-06, 23:08 
Добрый день,

скорость выполнения запроса типа:
"select * from t1 where time<1148469082 and time>1148468120"
будет зависить от кол-ва записей в базе не попадающих в этот интервал?

Если да, то можно ли какнибуть иначе организвать базу, дабы снять эту зависимость?

PS
в таблице несколько миллионов записей.
тип таблицы InnoDB, если это имеет значение..

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "скорость выполнения запроса"  
Сообщение от ovax email(??) on 26-Май-06, 03:33 
>Добрый день,
>
>скорость выполнения запроса типа:
>"select * from t1 where time<1148469082 and time>1148468120"
>будет зависить от кол-ва записей в базе не попадающих в этот интервал?
>
>
>Если да, то можно ли какнибуть иначе организвать базу, дабы снять эту
>зависимость?
>
>PS
>в таблице несколько миллионов записей.
>тип таблицы InnoDB, если это имеет значение..

Очевидно, есть смысл помимо юникс-тайм, также хранить дату в таблице отдельными полями в виде года, месяца, и , может быть, дня. И по этим полям провести индексацию.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "скорость выполнения запроса"  
Сообщение от Ден on 26-Май-06, 07:34 

>
>Очевидно, есть смысл помимо юникс-тайм, также хранить дату в таблице отдельными полями
>в виде года, месяца, и , может быть, дня. И по
>этим полям провести индексацию.

Такие поля есть, но я их сделал и использовал исключительно для группировки.
Благодарю за совет )

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "скорость выполнения запроса"  
Сообщение от Savva email(ok) on 26-Май-06, 12:24 
>
>>
>>Очевидно, есть смысл помимо юникс-тайм, также хранить дату в таблице отдельными полями
>>в виде года, месяца, и , может быть, дня. И по
>>этим полям провести индексацию.

Если там есть индексация + несколько миллионов записей, то помоему, будет весьма затруднительна вставка в таблицу :(

если так, то надо еще пересматривать структуру БД.
Возможно разбивать данные на отдельные таблицы (например по месяцам (таблица меньше - вставка быстрее))

а для SELECTа использовать VIEW (кажется 5й MySQL уже поддерживает)


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "скорость выполнения запроса"  
Сообщение от Асен Тотин email on 26-Май-06, 18:33 
Привет,

1. Чем меньше полей в WHERE клаузе, тем быстрее. Так что не разбивайте дату на куски.

2. MySQL-у почти все равно будет ли дата в timestamp или в datetime. Я лично предпочитаю второе, легче на консоли работать.

3. Скорость запроса будеть несколько зависеть от общего количества записей, но если у вас иднекс по данному полю и если запрос типа "больше чего-то и меньше того-то", то количество записей не сыграет особой роли.

4. несколько миллионов записей - это маленькая таблица, перестраивать базу нет смысла. Ваш запрос должен быть отработан в любом случае не более, чем за секунду. Пример: на машине с P4/3GHz при собственной загрузке CPU другими процессами примерно на 50%, извлечение данных с таким правилом из таблицы с ок. 3 миллионами записей занимает 0.5-1.5 секунды.

WWell,

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру