|
|
|
| Здравствуйте. Понимаю, что это не Mysql, но вроде бы наиближайший раздел форума.
Запросы просты и очевидны:
SELECT id FROM tbl WHERE 1=1 AND enabled = 1 AND type_id = 1 ORDER BY date DESC OFFSET 29540 LIMIT 20
К сожалению, они подвисают на очень большое время - 6-7 секунд, а порой и до 20 секунд доходит.
Кэширование используется, но все ситуации не перекэшируешь.
Возможно проблема в индексах, но я в постгрес не силен. Да и таблица tbl - это представление, а не обычная таблица.
Может быть, кто-то может подсказать что-то по этому поводу? Необходимые подробности предоставлю. | |
|
|
|
|
|
|
|
для: Shorr Kan
(06.11.2012 в 00:30)
| | Может я конечно относительно постгрес и фигню сейчас сморожу, но все же....
Запросы подвисают, но все же работают?
Оно что, умеет сортировать по отсутствующему полю?
Я знаком с MySQL и MsSQL... В них для ORDER'a необходимо, чтобы поле по которому нужно сортировать обязательно присутствовало в SELECT. | |
|
|
|
|
|
|
|
для: Sfinks
(06.11.2012 в 01:56)
| | даже относительно mysql это не так :) | |
|
|
|
|
|
|
|
для: Shorr Kan
(06.11.2012 в 10:16)
| | Хм... Вы правы.
Просто познакомившись с MsSQL, я приучился к построению запросов, которые всегда и при любых условиях выдают однозначный результат. И об этих фривольностях мускула уже и забыл.
В очередной раз убеждаюсь в дебильности и непредсказуемости этого диалекта.
Т.е. работать-то оно работает... Но при сложных запросах такие чудеса выдает!
А потом люди удивляются, что получают не то, что хотели. | |
|
|
|
|
|
|
|
для: Sfinks
(06.11.2012 в 12:35)
| | В общем и целом, чудес тут нет никаких. Просто все мы знаем, что без индекса много-много записей будут выбираться (и сортироваться) минуту, а с индексами - секунду. К сожалению, подробности индексов, тем более постгрешных, мне малознакомы. Да и тот нюанс, что речь идет о таблице представления, а не об обычной - тоже много чего меняет. Поэтому очень жду помощи | |
|
|
|