[development] Database queries on drupal.org
Moshe Weitzman
weitzman at tejasa.com
Wed Jul 26 13:48:06 UTC 2006
> 883.059 0.098 8986 theme_forum_topic_navigation SELECT
> n.nid, n.title, n.sticky, l.comment_count, l.last_comment_timestamp FROM
> node n INNER JOIN node_comment_statistics l ON n.nid = l.nid INNER JOIN
> term_node r ON n.nid = r.nid AND r.tid = D
yikes. a big query inside a theme function. FIXME
> 186.896 2.967 63 pager_query SELECT DISTINCT(n.nid),
> n.title, n.type, n.changed, n.uid, u.name, l.last_comment_timestamp AS
> last_post, l.comment_count FROM node n INNER JOIN users u ON n.uid =
> u.uid INNER JOIN node_comment_statistics l ON n.nid = l.nid WHERE
> n.status = D
the DISTINCT looks unneeded here. also, my node_comment_statistics patch
removes a JOIN for this - http://drupal.org/node/75122. not sure who is
issueing this query ... we should have some special case for pager_query()
so we know who really issued it.
> 2.536 0.845 3 comment_edit SELECT c.*, u.uid, u.name AS
> registered_name, u.data FROM comments c INNER JOIN users u ON c.uid =
> u.uid WHERE c.cid = D
we are missing an index on uid here. i think that would help. node has such
an index
> 0.614 0.614 1 eval select message, count(message) as count
> from watchdog where type = S and uid = D
whats issueing this query? looks odd. our indexes are not setup for this
> 0.429 0.429 1 pager_query SELECT q.qid, q.query, q.function,
> t.*, COUNT(t.qid) AS count, SUM(t.time) AS total_time, AVG(t.time) AS
> average, STDDEV(t.time) AS stddev FROM devel_queries q INNER JOIN
> devel_times t ON q.qid = t.qid GROUP BY t.qid ORDER BY total_time DESC
> LIMIT D
an index on total_time might help here
if people generally agree with these, i will submit patches.
More information about the development
mailing list