In the 4.6 model -- even with the backport url_alias patch -- I altered drupal_lookup_path() to disallow any lookups that didn't come from path aliases. Since I set the rules for that site, it meant paths were only checked if: 1) $path == 'taxonomy/%' 2) $_GET['q'] == $path This prevented the menu, node links, comment links, et. al. from being processed. It cut path lookups from 200+ to under 10 for node page views. Now this isn't a universal solution, but it may suggest a plan. - Ken Rickard agentrickard
Maybe we should run the modified devel.module on drupal.org to see what the most expensive queries are?
SELECT * FROM url_alias, I'd be surprized if that had changed. The individual query is very short but there are probably 120 per page on average.
Are there reasonable assumptions we can make about certain URLs? Like, can we assume that people don't want to alias '?q=qcomment/ reply/123'? Or ?q=contact? Or q=user/register and ?q=user/ password? If we can make some simple assumptions, we might be able to save a helluvalot database queries (per page view) ... Food for thought.
Any thoughts here?