Update sorting on reply/mentions timeline: added reply_profile_id_modified_notice_id_idx index to reply table

This commit is contained in:
Brion Vibber 2010-12-17 14:43:45 -08:00
parent 00a5a5342a
commit 3ddfa4de93
3 changed files with 10 additions and 9 deletions

View File

@ -50,15 +50,10 @@ class Reply extends Memcached_DataObject
$reply = new Reply(); $reply = new Reply();
$reply->profile_id = $user_id; $reply->profile_id = $user_id;
if ($since_id != 0) { Notice::addWhereSinceId($reply, $since_id, 'notice_id', 'modified');
$reply->whereAdd('notice_id > ' . $since_id); Notice::addWhereMaxId($reply, $max_id, 'notice_id', 'modified');
}
if ($max_id != 0) { $reply->orderBy('modified DESC, notice_id DESC');
$reply->whereAdd('notice_id <= ' . $max_id);
}
$reply->orderBy('notice_id DESC');
if (!is_null($offset)) { if (!is_null($offset)) {
$reply->limit($offset, $limit); $reply->limit($offset, $limit);

View File

@ -5,3 +5,6 @@ alter table notice add index notice_created_id_is_local_idx (created,id,is_local
-- Allows sorting tag-filtered public timeline by timestamp efficiently -- 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); alter table notice_tag add index notice_tag_tag_created_notice_id_idx (tag, created, notice_id);
-- Needed for sorting reply/mentions timelines
alter table reply add index reply_profile_id_modified_notice_id_idx (profile_id, modified, notice_id);

View File

@ -162,7 +162,10 @@ create table reply (
constraint primary key (notice_id, profile_id), constraint primary key (notice_id, profile_id),
index reply_notice_id_idx (notice_id), index reply_notice_id_idx (notice_id),
index reply_profile_id_idx (profile_id), index reply_profile_id_idx (profile_id),
index reply_replied_id_idx (replied_id) index reply_replied_id_idx (replied_id),
-- Needed for sorting reply/mentions timelines
index reply_profile_id_modified_notice_id_idx (profile_id, modified, notice_id)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;