ไม่เคยโดนเองขนาดนั้นนะ แต่เคยเอา xdebug จับ พบว่า mysql_query() กินเวลารวมๆ นานเหมือนกัน
ดูจาก
http://codex.wordpress.org/Database_Description 
คิดว่า index น่าจะใช้ได้แล้ว
ก็คิดว่า น่าจะทำ cache ของ db หรือไม่ก็ทำ read uncommited ( ยอม dirty read ) จะได้ไม่ lock บ่อยๆ
ใช้ InnoDB หรือ MyISAM
http://stackoverflow.com/quest...for-large-table-wordpress-blog 
InnoDB มันใช้ row lock แทนที่จะต้องถึงขั้น table lock น่าจะมีประโยชน์ โดยเฉพาะ column comment_count ที่ท่าทางจะโดน update บ่อยๆ ถ้ามี comment มากๆ
ขอยกตัวอย่างจากที่อื่นหน่อย
http://wordpress.org/support/topic/wp-302-cpu-throttling 
query แรก มี FROM wp_posts AS p INNER JOIN wp_term_relationships AS tr ON (p.ID = tr.object_id) แต่หลัง WHERE มี p.ID <> 305 ซึ่งเท่ากับว่า index บน p.ID แทบไม่มีประโยชน์ เพราะต้องอ่านทุก rows ยกเว้น rows ที่ p.ID = 305 ( ซึ่งน่าจะมี row เดียว เพราะ p.ID เป็น primary key ) จึงน่าจะเป็น table scan ถ้าอยากเร็ว อาจต้องเพิ่ม index บน wp_term_relationships.object_id