Macro Опубликовано 25 июля, 2013 (изменено) · Жалоба Есть постгрескл таблица с кучей данных. Таблица массово наполняется и массово удаляются записи. Создан индекс: CREATE INDEX trends_uint_1 on trends_uint (itemid,clock); Выборка из базы делается запросом: 'SELECT itemid,'.$calc_field.' AS i,'. 'SUM(num) AS count,AVG(value_avg)*1.2 AS avg,MIN(value_min) AS min,'. 'MAX(value_max)*1.2 AS max,MAX(clock) AS clock'. ' FROM trends_uint '. ' WHERE itemid='.$this->items[$i]['itemid']. ' AND clock>='.$from_time. ' AND clock<='.$to_time. ' GROUP BY itemid,'.$calc_field Как можно заметить - это табла заббикса. Так вот, когда только создал индекс, запросы на выборку к базе летали. С течением времени по мере вставки и удаления новых и старых записей, начались тормоза в вебинтерфейсе. Заново удалил и создал индекс, снова выборка летает. Возможно ли что индексы устаревают для таблицы? Изменено 25 июля, 2013 пользователем Macro Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
srg555 Опубликовано 25 июля, 2013 · Жалоба Нужно настроить autovacuum или сделать vacuum+analyze по крону Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 25 июля, 2013 · Жалоба Сделал так: autovacuum = on # Enable autovacuum subprocess? 'on' # requires track_counts to also be on. log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and # their durations, > 0 logs only # actions running at least this number # of milliseconds. autovacuum_max_workers = 3 # max number of autovacuum subprocesses autovacuum_naptime = 1min # time between autovacuum runs autovacuum_vacuum_threshold = 500 # min number of row updates before # vacuum autovacuum_analyze_threshold = 500 # min number of row updates before Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ichthyandr Опубликовано 25 июля, 2013 · Жалоба точно именно в базе проблемы? проверьте ваш селект через explain. можно еще реиндексирование сделать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
srg555 Опубликовано 25 июля, 2013 · Жалоба Macro Если не помогло, сделайте ANALYZE принудительно Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zhenya` Опубликовано 25 июля, 2013 · Жалоба вакуум фул еще стоит сделать.. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
srg555 Опубликовано 25 июля, 2013 · Жалоба вакуум фул еще стоит сделать.. ну вы ещё БД пересоздать посоветуйте. vacuum full считается небезопасной операцией и не рекомендуется к использованию. и вообще оно от версии зависит. http://wiki.postgresql.org/wiki/VACUUM_FULL Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 25 июля, 2013 · Жалоба точно селект. из консоли делаю и жду вывод. Сейчас индексы уже пересоздал, буду наблюдать. Всем спасибо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...