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

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

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

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

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

как нидь убыстрить можно ?
...
Рейтинг: 0 / 0
Оптимизация запроса
    #32690004
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
индекс по этому полю стоит ?
...
Рейтинг: 0 / 0
Оптимизация запроса
    #32690010
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извини, заработался увидел уже.
А что explain показывает, индекс используется ?
...
Рейтинг: 0 / 0
Оптимизация запроса
    #32691000
mechanoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И дай сюды текст запроса.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #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
Оптимизация запроса
    #32691502
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может - сначала вычислить нужный момент времени (дату+время), после которого сделует делать выборку, а потом так:
SELECT * FROM xxx WHERE dt >= some_data_time ORDER BY dt DESC
...
Рейтинг: 0 / 0
Оптимизация запроса
    #32691944
Мишган
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за мысль.

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

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


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