Good job
Надоело мне, что LeechCraft::Aggregator подтормаживает при обновлении большого количества фидов, поэтому решено было взять в руки профайлер и пройтись с ним по процессу обновления. Итак, две оптимизации сделали 95% успеха.
Первая - пренебрег принципом минимальности интерфейса и ввел у стораджа функцию для получения полных описаний всех новостей, относящихся к каналу. Раньше этот процесс проходил через получение кратких описаний всех новостей и дальнейшего обхода по списку кратких описаний с получением полных. Эта оптимизация дала где-то 35% прироста.
Вторая.
CREATE INDEX idx_items_parents_hash_title_url ON items (parents_hash, title, url);
Это где-то оставшиеся 60% выигрыша в производительности. Ну да, ценой немного раздувшейся БД (процентов на 15), но, думаю, пользователь переживет.
Теперь процесс обновления фидов легок и незаметен, и лишь легкое шуршание харда напоминает, что у меня уже полгода как SQLite, а не самодельный in-memory недовелосипед.