It won't solve your problem, but I would set key_buffer_size = 5G on a 24GB server.
I would look seriously in at developing summary table -- instead of indexing the raw data.
data warehouse, summary -
http://forums.mysql.com/read.php?125,252723 (Database Design for huge set of data)
summary -
http://forums.mysql.com/read.php?10,252593 (Counters)
locks, summary tables -
http://forums.mysql.com/read.php?21,247124 (Solving table locking issues)
summary -
http://forums.mysql.com/read.php?10,247779 (compressing tables)
summary -
http://forums.mysql.com/read.php?125,245133 (Design approach for summary table by 3 items)
partition, summary -
http://forums.mysql.com/read.php?106,288561 (Partitioning with range(to_days) issue)
summary table -
http://forums.mysql.com/read.php?24,428050 (To store or calculate on the spot?)
summary tables -
http://forums.mysql.com/read.php?10,426258 (Killed by joins. 1 minute selects in Access, 15 minutes in mySQL)
summary -
http://forums.mysql.com/read.php?10,421092 (Large Table Architecture)
summary -
http://forums.mysql.com/read.php?125,393184 (Storing a large, dense tensor (35gb scientific data) -- is mysql appropriate?)
summary -
http://forums.mysql.com/read.php?24,372008 (Index performance)
summary -
http://forums.mysql.com/read.php?10,364300 (Thinking about sorting articles..)
summary -
http://forums.mysql.com/read.php?52,359476 (Slow 'sending data' phase on mySQL query, for simple query)
summary -
http://forums.mysql.com/read.php?24,355548 (views, unions and different dbs)
summary -
http://forums.mysql.com/read.php?10,298557 (UNIX_TIMESTAMP Duplicate key)
summary -
http://forums.mysql.com/read.php?20,294180 (Multiple complex queries)
ALTER, summary -
http://forums.mysql.com/read.php?125,287739 (Large table designissue)
huge, summary tables -
http://forums.mysql.com/read.php?10,282768 (Which storage engine?)
left_off, myisam vs innodb, summary -
http://forums.mysql.com/read.php?10,276359 (should i go with myisam or innodb?)
summary -
http://forums.mysql.com/read.php?125,266570 (Best way to store/access large amounts of data?)
summary -
http://forums.mysql.com/read.php?24,263259 (Slow JOIN to convert IP to Country Code)
oracle, summary table -
http://forums.mysql.com/read.php?10,263071 (Bitmap Index)
summary, using index -
http://forums.mysql.com/read.php?24,253221 (InnoDB CPU Spikes)
summary -
http://forums.mysql.com/read.php?10,254332 (Very long query doubt... (Monster query...))