*/10 * * * * = toutes les 10 min × 49 flux actifs = ~14 000 appels/jour avec des upserts massifs sur la table articleslast_seen_at : la purge et les requêtes de filtrage font un full scan sur la table articles (34 MB, 2002 lignes)1. Réduire la fréquence du cron (impact immédiat, fort)
*/10 * * * * à */30 * * * * (toutes les 30 minutes)2. Ajouter un index sur last_seen_at (impact sur la purge)
CREATE INDEX idx_articles_last_seen_at ON public.articles USING btree (last_seen_at);3. Optimiser l'upsert dans fetch-rss (impact moyen)
last_seen_at uniquement si l'article existe déjàlast_seen_at + mise à jour du cron à 30 minsupabase/functions/fetch-rss/index.ts : optimiser l'upsert pour ne pas réécrire les articles existants inutilement