Hi,
I use InnoDB for my table, and I think I have hit the point where I
can't do query optimization any more. 

The query is as simple as below:
SELECT SQL_NO_CACHE diary_id, LEFT(body, 28) AS body , id FROM
diary_comment WHERE member_id='343' ORDER BY id DESC LIMIT 15;

And it took about 5 seconds.
# Query_time: 5  Lock_time: 0  Rows_sent: 15  Rows_examined: 9088

The table structure:
CREATE TABLE `diary_comment` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `diary_id` int(10) unsigned NOT NULL default '0',
  `member_id` mediumint(8) unsigned NOT NULL default '0',
  `sender_id` mediumint(8) unsigned NOT NULL default '0',
  `date` date NOT NULL default '0000-00-00',
  `time` time NOT NULL default '00:00:00',
  `body` text,
  PRIMARY KEY  (`id`),
  KEY `diary_id` (`diary_id`),
  KEY `member_id` (`member_id`),
  KEY `sender_id` (`sender_id`)
) TYPE=InnoDB

The table has about 4 million rows and I have index on member_id. The
table is growing at the rate of 1% a day. I am thinking about splitting
the table into several tables, so every table contains diary_comments
for limited member_id, and I can split the tables into several machines.
But the downside is I can't use auto_increment anymore. Anyone has any
ideas or suggestions about this?

I also read about MySQL Cluster, and I wonder if this can speed things
up. 

Regards,
Batara

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to