RSS
热门关键字:

WordPress执行效率问题

来源: 作者: 时间:2006-10-20 Tag: 点击:

实在受不了Wordpress的速度,今天非要找出个所以然来.
开始!
wp-config.php中加入

  1. ><?php define('SAVEQUERIES', true); ?>

在模板文件footer.php中加入

  1. ><?php var_dump($wpdb->queries); ?>

修改模板,并卸了所有的PLUGIN,将wp恢复到最简洁状态,然后运行测试.

一共6万文章,首页执行时间在16-30秒左右,分类的列表页执行效率居然高了快7倍,在4秒左右.

来看看执行首页都有哪些查询

19 queries. 16.817 seconds.

array(19) {
[0]=>
array(2) {
[0]=>
string(65) “SELECT option_value FROM wp_options WHERE option_name = ’siteurl’”
[1]=>
float(0.000766038894653)
}
[1]=>
array(2) {
[0]=>
string(71) “SELECT option_name, option_value FROM wp_options WHERE autoload = ‘yes’”
[1]=>
float(0.00127911567688)
}
[2]=>
array(2) {
[0]=>
string(79) “SELECT option_value FROM wp_options WHERE option_name = ‘rewrite_rules’ LIMIT 1″
[1]=>
float(0.000645875930786)
}
[3]=>
array(2) {
[0]=>
string(79) “SELECT option_value FROM wp_options WHERE option_name = ‘rewrite_rules’ LIMIT 1″
[1]=>
float(0.000285863876343)
}
[4]=>
array(2) {
[0]=>
string(207) ” SELECT DISTINCT * FROM wp_posts WHERE 1=1 AND post_date_gmt <= '2006-08-13 06:41:59' AND (post_status = "publish") AND post_status != "attachment" GROUP BY wp_posts.ID ORDER BY post_date DESC LIMIT 0, 50"
[1]=>
float(12.4344360828)
}

[5]=>
array(2) {
[0]=>
string(356) “SELECT post_id, category_id FROM wp_post2cat WHERE post_id IN (29271, 550, 33318, 23145, 55913, 15376, 48144, 9332, 42100, 2081, 34849, 21539, 54307, 31042, 20684, 53452, 3023, 35791, 18805, 51573, 2775, 35543, 14502, 47270, 17286, 50054, 20112, 52880, 22078, 54846, 27809, 19048, 51816, 30658, 6829, 39597, 11084, 43852, 29775, 29859, 14854, 47622, 23742, 56510, 11496, 44264, 10043, 42811, 30274, 18221)”
[1]=>
float(0.0330619812012)
}
[6]=>
array(2) {
[0]=>
string(27) “SELECT * FROM wp_categories”
[1]=>
float(0.000616073608398)
}
[7]=>
array(2) {
[0]=>
string(391) “SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN(29271, 550, 33318, 23145, 55913, 15376, 48144, 9332, 42100, 2081, 34849, 21539, 54307, 31042, 20684, 53452, 3023, 35791, 18805, 51573, 2775, 35543, 14502, 47270, 17286, 50054, 20112, 52880, 22078, 54846, 27809, 19048, 51816, 30658, 6829, 39597, 11084, 43852, 29775, 29859, 14854, 47622, 23742, 56510, 11496, 44264, 10043, 42811, 30274, 18221) ORDER BY post_id, meta_key”
[1]=>
float(0.000411033630371)
}
[8]=>
array(2) {
[0]=>
string(278) “SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM wp_posts WHERE post_date < '2006-08-13 14:41:21' AND post_date != '0000-00-00 00:00:00' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC"
[1]=>
float(1.06055593491)
}

[9]=>
array(2) {
[0]=>
string(86) “SELECT option_value FROM wp_options WHERE option_name = ‘kubrick_header_image’ LIMIT 1″
[1]=>
float(0.000422954559326)
}
[10]=>
array(2) {
[0]=>
string(86) “SELECT option_value FROM wp_options WHERE option_name = ‘kubrick_header_color’ LIMIT 1″
[1]=>
float(0.000302076339722)
}
[11]=>
array(2) {
[0]=>
string(88) “SELECT option_value FROM wp_options WHERE option_name = ‘kubrick_header_display’ LIMIT 1″
[1]=>
float(0.000371932983398)
}
[12]=>
array(2) {
[0]=>
string(45) “SELECT * FROM wp_users WHERE ID = ‘1′ LIMIT 1″
[1]=>
float(0.000383138656616)
}
[13]=>
array(2) {
[0]=>
string(64) “SELECT meta_key, meta_value FROM wp_usermeta WHERE user_id = ‘1′”
[1]=>
float(0.000432968139648)
}
[14]=>
array(2) {
[0]=>
string(155) “SELECT COUNT(DISTINCT ID) FROM wp_posts WHERE 1=1 AND post_date_gmt <= '2006-08-13 06:41:59' AND (post_status = "publish") AND post_status != "attachment""
[1]=>
float(1.02000594139)
}

[15]=>
array(2) {
[0]=>
string(169) ”
SELECT cat_ID, cat_name, category_nicename, category_description, category_parent, category_count
FROM wp_categories
WHERE cat_ID > 0
ORDER BY cat_name asc”
[1]=>
float(0.00116395950317)
}
[16]=>
array(2) {
[0]=>
string(76) “SELECT * FROM wp_posts WHERE post_status = ’static’ ORDER BY post_title ASC”
[1]=>
float(0.935003995895)
}
[17]=>
array(2) {
[0]=>
string(278) “SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM wp_posts WHERE post_date < '2006-08-13 14:41:24' AND post_date != '0000-00-00 00:00:00' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC"
[1]=>
float(0.997811079025)
}
[18]=>
array(2) {
[0]=>
string(295) ”
SELECT DISTINCT link_category, cat_name, show_images,
show_description, show_rating, show_updated, sort_order,
sort_desc, list_limit
FROM `wp_links`
LEFT JOIN `wp_linkcategories` ON (link_category = cat_id)
WHERE link_visible = ‘Y’
AND list_limit <> 0
ORDER BY cat_name ”
[1]=>
float(0.00177693367004)
}
}

很明显,第一个加粗部份的sql语句,居然执行了12秒!我汗!!!!

再来看看分类列表页都执行了些啥样的sql

19 queries. 3.430 seconds.

array(19) {
[0]=>
array(2) {
[0]=>
string(65) “SELECT option_value FROM wp_options WHERE option_name = ’siteurl’”
[1]=>
float(0.000646114349365)
}
[1]=>
array(2) {
[0]=>
string(71) “SELECT option_name, option_value FROM wp_options WHERE autoload = ‘yes’”
[1]=>
float(0.00108289718628)
}
[2]=>
array(2) {
[0]=>
string(79) “SELECT option_value FROM wp_options WHERE option_name = ‘rewrite_rules’ LIMIT 1″
[1]=>
float(0.000606060028076)
}
[3]=>
array(2) {
[0]=>
string(79) “SELECT option_value FROM wp_options WHERE option_name = ‘rewrite_rules’ LIMIT 1″
[1]=>
float(0.000309944152832)
}
[4]=>
array(2) {
[0]=>
string(27) “SELECT * FROM wp_categories”
[1]=>
float(0.000545978546143)
}
[5]=>
array(2) {
[0]=>
string(32) “SELECT cat_ID FROM wp_categories”
[1]=>
float(0.000543117523193)
}
[6]=>
array(2) {
[0]=>
string(292) ” SELECT DISTINCT * FROM wp_posts LEFT JOIN wp_post2cat ON (wp_posts.ID = wp_post2cat.post_id) WHERE 1=1 AND (category_id = 35) AND post_date_gmt <= '2006-08-13 06:43:59' AND (post_status = "publish") AND post_status != "attachment" GROUP BY wp_posts.ID ORDER BY post_date DESC LIMIT 0, 50"
[1]=>
float(0.0346350669861)
}
[7]=>
array(2) {
[0]=>
string(363) “SELECT post_id, category_id FROM wp_post2cat WHERE post_id IN (41073, 41074, 41058, 41053, 41066, 40988, 41070, 40992, 41034, 41056, 41020, 40996, 41051, 40989, 41023, 41017, 40991, 41039, 41071, 40993, 41077, 41031, 41030, 41062, 41002, 41025, 41028, 41021, 41047, 40990, 41008, 41061, 41042, 41033, 41052, 41065, 41078, 41076, 41004, 41049, 41043, 41014, 41027, 40998, 41036, 41059, 41050, 41072, 41011, 41069)”
[1]=>
float(0.00174999237061)
}
[8]=>
array(2) {
[0]=>
string(398) “SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN(41073, 41074, 41058, 41053, 41066, 40988, 41070, 40992, 41034, 41056, 41020, 40996, 41051, 40989, 41023, 41017, 40991, 41039, 41071, 40993, 41077, 41031, 41030, 41062, 41002, 41025, 41028, 41021, 41047, 40990, 41008, 41061, 41042, 41033, 41052, 41065, 41078, 41076, 41004, 41049, 41043, 41014, 41027, 40998, 41036, 41059, 41050, 41072, 41011, 41069) ORDER BY post_id, meta_key”
[1]=>
float(0.000437021255493)
}
[9]=>
array(2) {
[0]=>
string(278) “SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM wp_posts WHERE post_date < '2006-08-13 14:43:36' AND post_date != '0000-00-00 00:00:00' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC"
[1]=>
float(1.01349496841)
}

[10]=>
array(2) {
[0]=>
string(86) “SELECT option_value FROM wp_options WHERE option_name = ‘kubrick_header_image’ LIMIT 1″
[1]=>
float(0.000421047210693)
}
[11]=>
array(2) {
[0]=>
string(86) “SELECT option_value FROM wp_options WHERE option_name = ‘kubrick_header_color’ LIMIT 1″
[1]=>
float(0.00031304359436)
}
[12]=>
array(2) {
[0]=>
string(88) “SELECT option_value FROM wp_options WHERE option_name = ‘kubrick_header_display’ LIMIT 1″
[1]=>
float(0.000300168991089)
}
[13]=>
array(2) {
[0]=>
string(45) “SELECT * FROM wp_users WHERE ID = ‘1′ LIMIT 1″
[1]=>
float(0.000428915023804)
}
[14]=>
array(2) {
[0]=>
string(64) “SELECT meta_key, meta_value FROM wp_usermeta WHERE user_id = ‘1′”
[1]=>
float(0.000426054000854)
}
[15]=>
array(2) {
[0]=>
string(240) “SELECT COUNT(DISTINCT ID) FROM wp_posts LEFT JOIN wp_post2cat ON (wp_posts.ID = wp_post2cat.post_id) WHERE 1=1 AND (category_id = 35) AND post_date_gmt <= '2006-08-13 06:43:59' AND (post_status = "publish") AND post_status != "attachment""
[1]=>
float(0.039783000946)
}
[16]=>
array(2) {
[0]=>
string(169) ”
SELECT cat_ID, cat_name, category_nicename, category_description, category_parent, category_count
FROM wp_categories
WHERE cat_ID > 0
ORDER BY cat_name asc”
[1]=>
float(0.001296043396)
}
[17]=>
array(2) {
[0]=>
string(76) “SELECT * FROM wp_posts WHERE post_status = ’static’ ORDER BY post_title ASC”
[1]=>
float(0.955458164215)
}
[18]=>
array(2) {
[0]=>
string(278) “SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM wp_posts WHERE post_date < '2006-08-13 14:43:38' AND post_date != '0000-00-00 00:00:00' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC"
[1]=>
float(1.03362488747)
}

}

显然,罪魁祸首就是
SELECT DISTINCT * FROM wp_posts WHERE 1=1


上一篇:WordPress改造方法
下一篇:没有了
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册