This post is not a question, it is a point of reference for those running high-traffic websites on an EE platform.
We have had ongoing struggles with EE’s schema and core queries for an extensive period, and have struggled to cope with high traffic levels due to the trade-off of the weblogs module. We understand, in pursuing the ideal of building a dynamic app, at times you will be forced to compromise efficiency. This is not a criticism, simply a fact.
Our findings indicate that the extensive number of SELECT DISTINCT() queries generated by the EE platform cause extensive table locking on an MySQL MyISAM database. This is after disabling statistical tracking and implementing memcache to EE’s core.
We have found an ongoing issue in that, when a write/update is made to the exp_weblog_titles table, all SELECT DISTINCT queries - which are forced to write to disk for sorting - will backup and take in excess of 30 seconds to complete.
Yesterday, having converted this table to InnoDB in the interests of doing away with table locking, and reverting to row locking, we have seen a 6-fold performance increase. The throughput of queries has risen to 1600 queries per second.
While Ellis do not officially support or recommend InnoDB - as EE defaults to MyISAM, we do recommend - from our experience - that you experiment with it should your site be struggling with table locks on your exp_weblog_titles, and exp_comments tables.