Alexandre Alapetite 529d6bcd15 SQL : performances
Tentative de reformulation de la requête principale pour améliorer les
performances.
Utilisation d'une sous-jointure qui retourne uniquement e.id.
Sur mon serveur avec 13000 articles, la requête de la page d'accueil
sans article non lu mettait 1.38s avant le patch, contre 0.08s après (en
désactivant bien sûr le cache SQL).

Il faudra re-tester et tenter d'autres optimisations (notamment sur les
index) avec un nombre d'articles plus important.

Avant :
SELECT SQL_NO_CACHE e.id, e.guid, e.title, e.author,
UNCOMPRESS(e.content_bin) AS content, e.link, e.date, e.is_read,
e.is_favorite, e.id_feed, e.tags FROM `freshrss_alex_entry` e INNER JOIN
`freshrss_alex_feed` f ON e.id_feed = f.id WHERE f.priority > 0 AND
(e.id >= 1371597014000000 OR e.is_favorite = 1 OR f.keep_history = 1)
ORDER BY e.id DESC LIMIT 33;

Après :
SELECT SQL_NO_CACHE e.id, e.guid, e.title, e.author,
UNCOMPRESS(e.content_bin) AS content, e.link, e.date, e.is_read,
e.is_favorite, e.id_feed, e.tags FROM `freshrss_alex_entry` e INNER JOIN
(SELECT e1.id FROM `freshrss_alex_entry` e1 INNER JOIN
`freshrss_alex_feed` f ON e1.id_feed = f.id WHERE f.priority > 0 AND
(e1.id >= 1371597014000000 OR e1.is_favorite = 1 OR f.keep_history = 1)
ORDER BY e1.id DESC LIMIT 33) e2 ON e2.id = e.id ORDER BY e.id DESC;
2013-12-16 00:50:24 +01:00
2013-12-16 00:50:24 +01:00
2013-12-01 22:58:15 +01:00
2013-12-15 03:39:59 +01:00
2013-11-22 22:26:18 +01:00
2013-12-01 16:37:09 +01:00

FreshRSS

FreshRSS est un agrégateur de flux RSS à auto-héberger à l'image de Leed ou de Kriss Feed. Il se veut léger et facile à prendre en main tout en étant un outil puissant et paramétrable.

Logo de FreshRSS

Disclaimer

Cette application a été développée pour s'adapter à des besoins personnels et non professionels. Je ne garantis en aucun cas la sécurité de celle-ci, ni son bon fonctionnement. Je m'engage néanmoins à répondre dans la mesure du possible aux demandes d'évolution si celles-ci me semblent justifiées. Privilégiez pour cela des demandes sur GitHub (https://github.com/marienfressinaud/FreshRSS/issues) ou par mail (dev@marienfressinaud.fr)

Pré-requis

  • Serveur Apache2 ou Nginx (non testé sur les autres)
  • PHP 5.2+ (PHP 5.3.3+ recommandé)
  • Requis : LibXML, PCRE, cURL, PDO_MySQL
  • Recommandés : JSON, zlib, mbstring, iconv
  • MySQL 5.0.3+ (ou SQLite 3.7.4+ à venir)
  • Un navigateur Web récent tel Firefox, Chrome, Opera, Safari, Internet Explorer 9+
  • Fonctionne aussi sur mobile

Capture d'écran de FreshRSS

Installation

  1. Récupérez l'application FreshRSS via la commande git ou en téléchargeant l'archive
  2. Déplacez l'application où vous voulez sur votre serveur (attention, la partie accessible se trouve dans le répertoire ./public)
  3. Accédez à FreshRSS à travers votre navigateur web et suivez les instructions d'installation
  4. Tout devrait fonctionner :) En cas de problème, n'hésitez pas à me contacter.

Sécurité et conseils

  1. Pour une meilleure sécurité, faites en sorte que seul le répertoire ./public soit accessible par le navigateur. Faites pointer un sous-domaine sur le répertoire ./public par exemple
  2. Dans tous les cas, assurez-vous que ./data/application.ini ne puisse pas être téléchargé !
  3. Le fichier de log peut être utile à lire si vous avez des soucis
  4. Le fichier ./public/index.php défini les chemins d'accès aux répertoires clés de l'application. Si vous les bougez, tout se passe ici.
  5. Vous pouvez ajouter une tâche CRON sur le script d'actualisation des flux. Il s'agit d'un script PHP à exécuter avec la commande php. Par exemple, pour exécuter le script toutes les heures :
7 * * * * php /chemin/vers/freshrss/actualize_script.php >/dev/null 2>&1
Description
No description provided
Readme 96 MiB
Languages
PHP 80.4%
CSS 10%
HTML 7%
JavaScript 2.3%
Shell 0.1%
Other 0.1%