- Patch #243093 by catch, killes: improved indices on comment table.

merge-requests/26/head
Dries Buytaert 2009-06-15 19:28:55 +00:00
parent b0ebab68ca
commit 44a4cfebcd
2 changed files with 15 additions and 5 deletions

View File

@ -153,6 +153,18 @@ function comment_update_7002() {
return $ret;
}
/**
* Improve indexes on the comment table.
*/
function comment_update_7003() {
$ret = array();
db_drop_index($ret, 'comment', 'status');
db_drop_index($rest, 'comment', 'pid');
db_add_index($ret, 'comment', 'comment_pid_status', array('pid', 'status'));
db_add_index($ret, 'comment', 'comment_num_new', array('nid', 'timestamp', 'status'));
return $ret;
}
/**
* @} End of "defgroup updates-6.x-to-7.x"
* The next series of updates should start at 8000.
@ -255,10 +267,8 @@ function comment_schema() {
)
),
'indexes' => array(
'pid' => array('pid'),
'nid' => array('nid'),
// This index is probably unused.
'status' => array('status'),
'comment_status_pid' => array('pid', 'status'),
'comment_num_new' => array('nid', 'timestamp', 'status'),
),
'primary key' => array('cid'),
'foreign keys' => array(

View File

@ -1335,7 +1335,7 @@ function comment_num_new($nid, $timestamp = 0) {
$timestamp = ($timestamp > NODE_NEW_LIMIT ? $timestamp : NODE_NEW_LIMIT);
// Use the timestamp to retrieve the number of new comments.
return db_query('SELECT COUNT(c.cid) FROM {node} n INNER JOIN {comment} c ON n.nid = c.nid WHERE n.nid = :nid AND timestamp > :timestamp AND c.status = :status', array(
return db_query('SELECT COUNT(cid) FROM {comment} WHERE nid = :nid AND timestamp > :timestamp AND status = :status', array(
':nid' => $nid,
':timestamp' => $timestamp,
':status' => COMMENT_PUBLISHED,