From 1b90ed564a19dcb3d24d0c0620ce0623773fe4d0 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 17 Dec 2010 15:13:09 -0800 Subject: Update sorting on api/statuses/retweets: adds notice_repeat_of_created_id_idx index to replace notice_repeatof_idx --- classes/Notice.php | 2 +- db/096to097.sql | 7 +++++-- db/statusnet.sql | 4 ++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/classes/Notice.php b/classes/Notice.php index c58705c4b..ea69a5bed 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1690,7 +1690,7 @@ class Notice extends Memcached_DataObject $notice->repeat_of = $this->id; - $notice->orderBy('created'); // NB: asc! + $notice->orderBy('created, id'); // NB: asc! if (!is_null($limit)) { $notice->limit(0, $limit); diff --git a/db/096to097.sql b/db/096to097.sql index c3f1fb425..5947538da 100644 --- a/db/096to097.sql +++ b/db/096to097.sql @@ -1,7 +1,10 @@ -- Add indexes for sorting changes in 0.9.7 --- Allows sorting public timeline by timestamp efficiently -alter table notice add index notice_created_id_is_local_idx (created,id,is_local); +-- Allows sorting public timeline and api/statuses/repeats by timestamp efficiently +alter table notice + add index notice_created_id_is_local_idx (created,id,is_local), + drop index notice_repeatof_idx, + add index notice_repeat_of_created_id_idx (repeat_of, created, id); -- Allows sorting tag-filtered public timeline by timestamp efficiently alter table notice_tag add index notice_tag_tag_created_notice_id_idx (tag, created, notice_id); diff --git a/db/statusnet.sql b/db/statusnet.sql index 5898abf46..9624edd6f 100644 --- a/db/statusnet.sql +++ b/db/statusnet.sql @@ -137,11 +137,15 @@ create table notice ( -- For profile timelines... index notice_profile_id_idx (profile_id,created,id), + -- For api/statuses/repeats... + index notice_repeat_of_created_id_idx (repeat_of, created, id), + -- Are these enough? index notice_conversation_idx (conversation), index notice_created_idx (created), index notice_replyto_idx (reply_to), index notice_repeatof_idx (repeat_of), + FULLTEXT(content) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; -- cgit v1.2.3