I have a table:

CREATE TABLE `single_table` (
  `forum_id` int(10) unsigned NOT NULL default '0',
  `id` int(10) unsigned NOT NULL auto_increment,
  `datestamp` datetime NOT NULL default '0000-00-00 00:00:00',
  `thread` int(10) unsigned NOT NULL default '0',
  `parent` int(10) unsigned NOT NULL default '0',
  `author` varchar(37) NOT NULL default '',
  `subject` varchar(255) NOT NULL default '',
  `email` varchar(200) NOT NULL default '',
  `attachment` varchar(64) NOT NULL default '',
  `host` varchar(50) NOT NULL default '',
  `email_reply` char(1) NOT NULL default 'N',
  `approved` char(1) NOT NULL default 'N',
  `msgid` varchar(100) NOT NULL default '',
  `viewcount` int(11) NOT NULL default '0',
  `modifystamp` int(10) unsigned NOT NULL default '0',
  `userid` int(10) unsigned NOT NULL default '0',
  `body` text NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `forum_id_3` (`forum_id`,`thread`,`modifystamp`,`approved`),
  KEY `approved` (`approved`,`datestamp`),
  KEY `parent` (`parent`),
  FULLTEXT KEY `body` (`body`,`author`,`subject`)
) TYPE=MyISAM


If I run a query like:

select id from single_table where forum_id=5818 and parent=0 order by
modifystamp desc

It runs really slow (a minute) and explain says it is using filesort.

However this query:

select id from single_table where forum_id=5818 and parent=0 order by thread
desc

runs in .2 seconds and does not use a filesort.  Is MySQL using the first
part of forum_id_3 key for this query?  Do I need to create a forum_id,
parent, modifystamp key?

This table has like 1.13 mill rows, so experimenting takes for ever.  That
is normally what I would.  Just try stuff.

Brian.


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to