From f6ebe815382a61574df5f9452ee9a0ea4ae38f0c Mon Sep 17 00:00:00 2001
From: Brion Vibber <brion@pobox.com>
Date: Sun, 21 Feb 2010 15:21:18 -0800
Subject: Performance fix for FriendFeed sup interface: MySQL query optimizer
 was doing a table scan on notice; explicit subquery makes it run much more
 efficiently, only scanning items within the period under consideration.
 Standard subquery should be PostgreSQL-compatible.

---
 actions/sup.php | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/actions/sup.php b/actions/sup.php
index 5daf0a1c1..4e428dfa5 100644
--- a/actions/sup.php
+++ b/actions/sup.php
@@ -66,10 +66,12 @@ class SupAction extends Action
         $divider = common_sql_date(time() - $seconds);
 
         $notice->query('SELECT profile_id, max(id) AS max_id ' .
-                       'FROM notice ' .
+                       'FROM ( ' .
+                       'SELECT profile_id, id FROM notice ' .
                         ((common_config('db','type') == 'pgsql') ?
                        'WHERE extract(epoch from created) > (extract(epoch from now()) - ' . $seconds . ') ' :
                        'WHERE created > "'.$divider.'" ' ) .
+                       ') AS latest ' .
                        'GROUP BY profile_id');
 
         $updates = array();
-- 
cgit v1.2.3-54-g00ecf