Macro Posted July 25, 2013 Posted July 25, 2013 (edited) Есть постгрескл таблица с кучей данных. Таблица массово наполняется и массово удаляются записи. Создан индекс: 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 Как можно заметить - это табла заббикса. Так вот, когда только создал индекс, запросы на выборку к базе летали. С течением времени по мере вставки и удаления новых и старых записей, начались тормоза в вебинтерфейсе. Заново удалил и создал индекс, снова выборка летает. Возможно ли что индексы устаревают для таблицы? Edited July 25, 2013 by Macro Вставить ник Quote
srg555 Posted July 25, 2013 Posted July 25, 2013 Нужно настроить autovacuum или сделать vacuum+analyze по крону Вставить ник Quote
Macro Posted July 25, 2013 Author Posted July 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 Вставить ник Quote
ichthyandr Posted July 25, 2013 Posted July 25, 2013 точно именно в базе проблемы? проверьте ваш селект через explain. можно еще реиндексирование сделать. Вставить ник Quote
srg555 Posted July 25, 2013 Posted July 25, 2013 Macro Если не помогло, сделайте ANALYZE принудительно Вставить ник Quote
srg555 Posted July 25, 2013 Posted July 25, 2013 вакуум фул еще стоит сделать.. ну вы ещё БД пересоздать посоветуйте. vacuum full считается небезопасной операцией и не рекомендуется к использованию. и вообще оно от версии зависит. http://wiki.postgresql.org/wiki/VACUUM_FULL Вставить ник Quote
Macro Posted July 25, 2013 Author Posted July 25, 2013 точно селект. из консоли делаю и жду вывод. Сейчас индексы уже пересоздал, буду наблюдать. Всем спасибо. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.