
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.09.2004, 15:02
|
|||
|---|---|---|---|
|
|||
Оптимизация запроса |
|||
|
#18+
Задача - выбрать из таблицы записи за определенный день, записанные после определенного времени... поле Datatime в таблице заполняется now() при добавлении записи в в таблицу и по этому полю есть индекс. where стоит по дате=нужной и времени > нужного... таблица большая... выборка работает долше если выбирать например записи просто за один день.. подзапросы не поддерживаются... как нидь убыстрить можно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.09.2004, 16:00
|
|||
|---|---|---|---|
Оптимизация запроса |
|||
|
#18+
индекс по этому полю стоит ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.09.2004, 16:02
|
|||
|---|---|---|---|
Оптимизация запроса |
|||
|
#18+
извини, заработался увидел уже. А что explain показывает, индекс используется ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.09.2004, 19:50
|
|||
|---|---|---|---|
|
|||
Оптимизация запроса |
|||
|
#18+
И дай сюды текст запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2004, 11:36
|
|||
|---|---|---|---|
|
|||
Оптимизация запроса |
|||
|
#18+
Вот кусочек.. с перла.. $sth = $dbh->prepare("SELECT * FROM xxx WHERE dayofyear(dt)=dayofyear(now()) and time_to_sec(dt)>=time_to_sec('".$ttime."') ORDER BY dt DESC"); индекс стоит.. эксплаин грит, что индекс пользует... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2004, 12:04
|
|||
|---|---|---|---|
Оптимизация запроса |
|||
|
#18+
Может - сначала вычислить нужный момент времени (дату+время), после которого сделует делать выборку, а потом так: SELECT * FROM xxx WHERE dt >= some_data_time ORDER BY dt DESC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2004, 14:13
|
|||
|---|---|---|---|
|
|||
Оптимизация запроса |
|||
|
#18+
Спасибо за мысль. Такой вариант получился: $sth = $dbh->prepare("SELECT * FROM guest WHERE dt>=date_add(curdate(), interval '".$ttime."' hour_second) ORDER BY dt DESC"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2004, 16:17
|
|||
|---|---|---|---|
Оптимизация запроса |
|||
|
#18+
Вообще - лучше в запросах лишний раз функции не использовать - а использовать константы - так, имхо, быстрее будет. Думаю - что этот кусок: date_add(curdate(), interval '".$ttime."' hour_second можно вычислить где-то в перле, и в запрос передать вычисленную константу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1854815]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 514ms |

| 0 / 0 |
