Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация запроса / 8 сообщений из 8, страница 1 из 1
10.09.2004, 15:02
    #32689845
Мишган
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
Задача - выбрать из таблицы записи за определенный день, записанные после
определенного времени...

поле Datatime в таблице заполняется now() при добавлении записи в в таблицу и по этому полю есть индекс.

where стоит по дате=нужной и времени > нужного...

таблица большая... выборка работает долше если выбирать например записи просто за один день..

подзапросы не поддерживаются...

как нидь убыстрить можно ?
...
Рейтинг: 0 / 0
10.09.2004, 16:00
    #32690004
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
индекс по этому полю стоит ?
...
Рейтинг: 0 / 0
10.09.2004, 16:02
    #32690010
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
извини, заработался увидел уже.
А что explain показывает, индекс используется ?
...
Рейтинг: 0 / 0
12.09.2004, 19:50
    #32691000
mechanoid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
И дай сюды текст запроса.
...
Рейтинг: 0 / 0
13.09.2004, 11:36
    #32691426
Мишган
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
Вот кусочек.. с перла..

$sth = $dbh->prepare("SELECT * FROM xxx WHERE dayofyear(dt)=dayofyear(now()) and time_to_sec(dt)>=time_to_sec('".$ttime."') ORDER BY dt DESC");

индекс стоит.. эксплаин грит, что индекс пользует...
...
Рейтинг: 0 / 0
13.09.2004, 12:04
    #32691502
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
Может - сначала вычислить нужный момент времени (дату+время), после которого сделует делать выборку, а потом так:
SELECT * FROM xxx WHERE dt >= some_data_time ORDER BY dt DESC
...
Рейтинг: 0 / 0
13.09.2004, 14:13
    #32691944
Мишган
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
Спасибо за мысль.

Такой вариант получился:

$sth = $dbh->prepare("SELECT * FROM guest WHERE dt>=date_add(curdate(), interval '".$ttime."' hour_second) ORDER BY dt DESC");
...
Рейтинг: 0 / 0
13.09.2004, 16:17
    #32692240
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
Вообще - лучше в запросах лишний раз функции не использовать - а использовать константы - так, имхо, быстрее будет.
Думаю - что этот кусок:
date_add(curdate(), interval '".$ttime."' hour_second
можно вычислить где-то в перле, и в запрос передать вычисленную константу...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация запроса / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]