I have **1.5M** rows in a table. Following is the table create code: CREATE TABLE `jobs` ( `id` INT(8) NOT NULL AUTO_INCREMENT, `job_id` VARCHAR(50) NOT NULL DEFAULT '', `title` VARCHAR(255) NOT NULL DEFAULT '', `company` VARCHAR(255) NOT NULL DEFAULT '', `city` VARCHAR(50) NOT NULL DEFAULT '', `state` VARCHAR(50) NOT NULL DEFAULT '', PRIMARY KEY (`id`), UNIQUE INDEX `job_id` (`job_id`), FULLTEXT INDEX `search` (`title`, `company`, `city`, `state`) ) COLLATE='utf8_general_ci' ENGINE=MyISAM The query below takes about 0.5 seconds, which is very high. SELECT id, title, company, state, city FROM `jobs` WHERE MATCH (title, company, state, city) AGAINST ('software engineer in san fransisco california') LIMIT 0,10 **How can I decrease execution time and still provide relevance results? Any suggestions?** So far I tried followings but there is no improvement at all. -Searching in a single field that contains 4 field of data but it did not matter. -Using in boolean mode>1 or >2, but then it gives me unrelated results -Repearing the table, increasing key_buffer_size to 1GB from 16MB, changing table type to Innodb, changing character set to latin1 from utf8. -Setting ft_max_word_len=1 and ft_stopword_file='' from default values. -I searched online for many hours but no luck so far. "Explain select..." output: id;select_type;table;type ;possible_keys;key ;key_len;ref;rows;Extra 1 ;SIMPLE ;jobs ;fulltext;search ;search;0 ;\N ;1 ;Using where