Xavier LENOIR wrote:
>>I use queries like this : >>SELECT count(*) FROM MyTable WHERE (MATCH(Title) AGAINST('a word')); >>SELECT * FROM MyTable WHERE (MATCH(Title) AGAINST('a word')) LIMIT 10; >> > > Have you tried building a seperate table of titles for the sake of having a smaller table to scan through? SELECT * FROM MyTable LEFT JOIN Titles ON TitleID = Titles.ID WHERE (MATCH (Titles.Name) AGAINST ('a word')) LIMIT 10; ... I've found this type of optimization helps on large (disk-size) tables. It helps even more if you make the table like: CREATE TABLE Titles ( ID int unsigned not null auto_increment, Name CHAR(150), PRIMARY KEY (ID), FULLTEXT (Name), INDEX NameIdx(Name) ); (Try both types of index to see if either is faster ... ) Also try putting your 'Autx' fields in a seperate table, for the sake of good design, then create a cross-linked table to join it to the main table. tables ------ MyTable: ID, TitleID, details. { PRIMARY KEY (ID) } Titles: ID, Name { PRIMARY KEY {ID) } Auts: ID, Data { PRIMARY KEY (ID) } PS, would you believe this message never contained SQL or QUERY? MovieAuts: MovieID, AutID { PRIMARY KEY MovieAutIDX (MovieID, AutID); -- Michael T. Babcock C.T.O., FibreSpeed Ltd. http://www.fibrespeed.net/~mbabcock --------------------------------------------------------------------- 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