On 22 Jul 2006, at 18:52, Moshe Weitzman wrote:
Dries Buytaert wrote:
On 21 Jul 2006, at 15:15, Moshe Weitzman wrote:
i can't think of any reasonable assumptions. to me, the waste is not that we have to perform so many queries, but rather that we do so on every page view even though the data rarely changes. to address that, one should use mysql query cache or even memcached. A query cache only eliminates part of the overhead. Most of the overhead comes from Drupal's database abstraction layer, not from execution the actual SQL query: http://buytaert.net/drupal-database-interaction We gain most if we eliminate calls to db_query(). We use a MySQL query cache on drupal.org, and the one query that retrieves the URL alias is still to most expensive query (accumulated cost).
good point. i guess you have looked at opportunities for improvement in db_query() and friends? I suspect that the slowdown is due to regular expressions. I'm not fluent enough to evaluate which are slow, but here is the list of DB functions that contain a regex.
db_query db_query_range db_rewrite_sql db_escape_table db_query_temporary - only used for search i think
My post (http://buytaert.net/drupal-database-interaction) tells you _exactly_ what functions to focus on. Check the figures. :) -- Dries Buytaert :: http://www.buytaert.net/