Catherine Munro wrote:
it's the fact that we don't have anyone who is really expert at optimizing MySQL database searches.
I cannot claim to know much (or even anything) about the MySQL full-text search, but as for the entire rest of the database at least, I have suggested numerous improvements in the past that according to my own experience (which is quite a bit, but of course it's up to you whether to trust it or not) will greatly improve the database performance. None of these suggestions have ever been implemented yet. (Please don't see this as criticism; it's just stating a fact.)
One of my suggestions was a completely new database schema. http://meta.wikipedia.org/wiki/Experimental_new_database_schema Notice that this proposal is very old (July 2003), which is why it doesn't take into account any of the new features (MediaWiki and Template namespaces, Categories, etc.)
When it became obvious that these changes would be rather involved to make, I suggested to morph the database schema slowly into a new one (preferably that one), and the first step I believe would be to get rid of the distinction between "cur" (current revisions) and "old" (non-current revisions) and instead have a table "pages" (with data pertaining to each article independent of revisions) and "revisions" (with all the revisions and their meta-data, current and old).
When I made that suggestion, Brion pointed me at this: http://meta.wikipedia.org/wiki/Proposed_Database_Schema_Changes I don't know if he came up with it because of my suggestion, or if he had written it before.
Timwi