diff -ubBwr --exclude=uploads --exclude=images --exclude=images_pcf --exclude=config.php --exclude=languages/polish --exclude=settings.php src_original/syndication.php forum/syndication.php
--- src_original/syndication.php	2008-11-27 08:44:00.000000000 +0100
+++ forum/syndication.php	2009-02-12 14:48:38.000000000 +0100
@@ -112,6 +112,21 @@
 $feedgenerator->set_channel($channel);
 
+// KK: db_optimization_syndication_fetch_threads_only_from_last_few_days
+/*
+Domyslny syndication produkuje uzycie indeksu na 'fid' przy klauzuli WHERE:
+	AND f.fid NOT IN ('15', '14', '34', '27') // ukryte FID-y
+co daje cos typu 99500 wierszy i trwa kilka sekund.
+Widac to po procesach - czesto trwalo kilkanascie sekund na "copying to tmp table".
+Ograniczajac to po `dateline` przyspieszamy rzedu 1000x:
+ - z powodu ograniczenia liczby wierszy do 3030
+ - likwidujac 'Using filesort' przy sortowaniu 
+W morde! :D
+*/
+// ucinamy dateline do 10 dni (10 * 86400)
+$pcf_datecutsql_dateline = "(dateline >= '" . (TIME_NOW - 864000) . "') AND ";
 // Get the threads to syndicate.
-$query = $db->simple_select("threads", "subject, tid, dateline, firstpost", "visible='1' AND closed NOT LIKE 'moved|%' ".$forumlist, array('order_by' => 'dateline', 'order_dir' => 'DESC', 'limit' => $thread_limit));
+// $query = $db->simple_select("threads", "subject, tid, dateline, firstpost", "visible='1' AND closed NOT LIKE 'moved|%' ".$forumlist, array('order_by' => 'dateline', 'order_dir' => 'DESC', 'limit' => $thread_limit));
+$query = $db->simple_select("threads", "subject, tid, dateline, firstpost", "$pcf_datecutsql_dateline visible='1' AND closed NOT LIKE 'moved|%' ".$forumlist, array('order_by' => 'dateline', 'order_dir' => 'DESC', 'limit' => $thread_limit));
+// KK: db_optimization_syndication_fetch_threads_only_from_last_few_days
 // Loop through all the threads.
 while($thread = $db->fetch_array($query))

