Understanding what WordPress is doing under the hood can be tough – especially when it comes to the raw SQL queries. As is usually typical with WordPress, somebody has written a plugin for it – in this case, it is called debug-bar. To get it going, do the following:
- Download and install the plugin from here: http://wordpress.org/plugins/debug-bar/.
- Go into your wp-config file and add this line: define(‘SAVEQUERIES’, true);
- Ensure that you admin bar is displaying (be logged in as an Administrator) and refresh the site page that you want metrics.
- Click on the new “Debug” option on the right-side of the admin bar. Voila!
In my case, I wanted a baseline, so I ran it on a barebones theme – no plugins (other than debug-bar), no templates (other than header, index, and footer), and no custom function code. Here is what I got – the formatting looks different than what you get in debug-bar, but the data is still there:
Total Queries:9
Total query time:23.8 ms
- SELECT option_name, option_value FROM wp_options WHERE autoload = ‘yes’
require(‘D:\wamp\www\8bitcool\wp-blog-header.php’), require_once(‘D:\wamp\www\8bitcool\wp-load.php’), require_once(‘D:\wamp\www\8bitcool\wp-config.php’), require_once(‘D:\wamp\www\8bitcool\wp-settings.php’), wp_not_installed, is_blog_installed, wp_load_alloptions #1 (2.6ms)
- SELECT * FROM wp_users WHERE user_login = ‘suleski’
require(‘D:\wamp\www\8bitcool\wp-blog-header.php’), require_once(‘D:\wamp\www\8bitcool\wp-load.php’), require_once(‘D:\wamp\www\8bitcool\wp-config.php’), require_once(‘D:\wamp\www\8bitcool\wp-settings.php’), WP->init, wp_get_current_user, get_currentuserinfo, wp_validate_auth_cookie, get_user_by, WP_User::get_data_by #2 (0.5ms)
- SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC
require(‘D:\wamp\www\8bitcool\wp-blog-header.php’), require_once(‘D:\wamp\www\8bitcool\wp-load.php’), require_once(‘D:\wamp\www\8bitcool\wp-config.php’), require_once(‘D:\wamp\www\8bitcool\wp-settings.php’), WP->init, wp_get_current_user, get_currentuserinfo, wp_validate_auth_cookie, get_user_by, WP_User->init, WP_User->for_blog, WP_User->_init_caps, get_user_meta, get_metadata, update_meta_cache #3 (9.5ms)
- SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = ‘post’ AND (wp_posts.post_status = ‘publish’ OR wp_posts.post_status = ‘private’) ORDER BY wp_posts.post_date DESC LIMIT 0, 10
require(‘D:\wamp\www\8bitcool\wp-blog-header.php’), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts #4 (0.7ms)
- SELECT FOUND_ROWS()
require(‘D:\wamp\www\8bitcool\wp-blog-header.php’), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, WP_Query->set_found_posts #5 (0.1ms)
- SELECT wp_posts.* FROM wp_posts WHERE ID IN (5191,1220,807)
require(‘D:\wamp\www\8bitcool\wp-blog-header.php’), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, _prime_post_caches #6 (0.5ms)
- SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN (‘category’, ‘post_tag’, ‘post_format’) AND tr.object_id IN (807, 1220, 5191) ORDER BY t.name ASC
require(‘D:\wamp\www\8bitcool\wp-blog-header.php’), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, _prime_post_caches, update_post_caches, update_object_term_cache, wp_get_object_terms #7 (8.0ms)
- SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (807,1220,5191) ORDER BY meta_id ASC
require(‘D:\wamp\www\8bitcool\wp-blog-header.php’), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, _prime_post_caches, update_post_caches, update_postmeta_cache, update_meta_cache #8 (1.4ms)
- SELECT comment_approved, COUNT( * ) AS num_comments FROM wp_comments GROUP BY comment_approved
require(‘D:\wamp\www\8bitcool\wp-blog-header.php’), require_once(‘D:\wamp\www\8bitcool\wp-includes\template-loader.php’), include(‘D:\wamp\www\8bitcool\wp-content\themes\eightbit\index.php’), get_footer, locate_template, load_template, require_once(‘D:\wamp\www\8bitcool\wp-content\themes\eightbit\footer.php’), wp_footer, do_action(‘wp_footer’), call_user_func_array, wp_admin_bar_render, do_action_ref_array, call_user_func_array, wp_admin_bar_comments_menu, wp_count_comments #9 (0.4ms)