|
|
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
В веб-приложении (пхп) используются запросы вида SELECT COUNT(*) FROM sometable; они жутко тормозят приложение (запрос выполняется 6-7 секунд) Можно ли как-то увеличить скорость выполнения запроса, возможно нужно просто как-то изменить запрос на более уместный? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2006, 17:34 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
Неоднократно здесь писали. Пользуйся поиском. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2006, 17:52 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
странно - ничего не нашел - ничего кроме сравнения count(1) count(*) Может что-то еще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2006, 18:18 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
twistfireВ веб-приложении (пхп) используются запросы вида SELECT COUNT(*) FROM sometable; они жутко тормозят приложение (запрос выполняется 6-7 секунд) Можно ли как-то увеличить скорость выполнения запроса, возможно нужно просто как-то изменить запрос на более уместный?Что за таблица? Сколько в ней записей? Индексы по таблице есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 05:35 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
Странно как-то искал.... Например: /topic/216436&hl=count /topic/251251&hl=count /topic/227461&hl=count ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 06:58 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
авторЧто за таблица? Сколько в ней записей? Индексы по таблице есть? Какое отношение к запросу с COUNT имеют индексы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 07:03 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
ChameLe0n авторЧто за таблица? Сколько в ней записей? Индексы по таблице есть? Какое отношение к запросу с COUNT имеют индексы?Теперь уже никакого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 07:05 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
Все равно не понимаю. Как у Sad Spirit получилось Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. у меня получается Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Что я делаю не так? Возможно нужно использовать триггеры, это не отразится на скорости работы веб-приложения? Как написать такой триггер - покажите пример пожалуйста. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 13:26 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
Скорее всего у тебя очень много ID>0. Соответственно, веса планов для SEQ_SCAN и INDEX_SCAN одинаковые. Планировщику проще перелопатить таблицу, нежели перелопачивать индекс, и для каждого узла лезть в таблицу и доставать оттуда строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 14:21 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
posovetovali ispolzovat sistwmnie tablici.... ia ne zneu kakim makarom - est chto-li dannie o kolichestve zapisei v opredelennih tablicah? esli ispolzovat triggeri - kak luchshe organizovat rabotu s usloviami (WHERE)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 11:16 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. Explain: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Четыре запроса - уже секунда, плюс десяток других, "лёгких" запросов, плюс отработка скрипта и уже полторы-две секунды на формирование страницы. Это очень много. Прегенерация не вариант, т.к. два десятка различных фильтров, на все комбинации не нагенеришь. Джойнов тоже может прибаляться в зависимости от фильтров, а соответсвенно дополнительные Nested Loops и время на запрос доходит до секунды-полутора. Есть идеи что сделать можно? Денормализовать слив в одну таблицу или ещё что-то сделать можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 19:13 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
Sufir Код: sql 1. 2. 3. 4. 5. 6. 7. Explain: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Четыре запроса - уже секунда, плюс десяток других, "лёгких" запросов, плюс отработка скрипта и уже полторы-две секунды на формирование страницы. Это очень много. Прегенерация не вариант, т.к. два десятка различных фильтров, на все комбинации не нагенеришь. Джойнов тоже может прибаляться в зависимости от фильтров, а соответсвенно дополнительные Nested Loops и время на запрос доходит до секунды-полутора. Есть идеи что сделать можно? Денормализовать слив в одну таблицу или ещё что-то сделать можно? Разобраться для чего вообще вы эти цифры показываете и отключить. Так как в цифре есть 20816 открытых тикетов смысла ровно ноль для всех. Еще может помочь создание индексов так чтобы наиболее популярные запросы шли через IOS (index only scan) это может ускорить раза в два-четыре. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 06:26 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
Лучше уже тригером обновлять счетчик в левой таблице при update/delete/insert на таблице с состояние тикетов. Чем делать этот "ацкий" count. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 20:20 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
Electric200Лучше уже тригером обновлять счетчик в левой таблице при update/delete/insert на таблице с состояние тикетов. количество данных для "жутко тормозят" на линейной выборке по таблице многовероятно сформированы системой с многоболее одной транзакции одновременно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 20:50 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
p2., да, реально чтений [страниц] там много меньше чем 21280 в лупах. хотелось бы buffers увидеть, чтобы значит скорость произвольного доступа оценить а автору подумать на предмет денормализации с переносом всех значимых полей в один индекс, для IOS [только если обновления записей не часты] . если бы время было минуты, а числа -- миллионы -- можно бы было хенджобно параллелить по диапазонам ключей (через дблинк) -- за счет того, что 10 соединений получат больше %% дискового, чем одно -- при высокой конкуренции -- но работы там до пупа, а толку -- с гулькин чуть -- вот если бы ещё и вычислительный запрос -- тогда ядра бы параллелились ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2015, 09:49 |
|
||
|
ускорение выполнения запроса SELECT COUNT
|
|||
|---|---|---|---|
|
#18+
Sufir Прегенерация не вариант, т.к. два десятка различных фильтров, на все комбинации не нагенеришь.какбе прегененрировать можно не каунты а сабкаунтты -- 2 десятка -- это комбинация меньше 5! (факториал) -- т.е. вполне может оказаться кубик с <=5измерений, и одним ресурсом[count], который надо триггерно (точно) или асинхронно (оценочно) поддерживать. но не зная ваших фильтров -- не сообразить, так ли это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2015, 09:59 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39011846&tid=1997870]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
203ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 260ms |
| total: | 562ms |

| 0 / 0 |
