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.3** seconds, which is very high. 

    SELECT id, 
    title, 
    company, 
    state, 
    city 
    FROM `jobs` 
    WHERE MATCH (title, company, state, city) AGAINST
    ('senior software engineer in san fransisco california')  
    LIMIT 0,10

**How can I decrease execution time and still provide relevant 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

 - Repairing 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

**EDIT:** SHOW PROFILE OUTPUT:

    || *Status*                || *Duration* ||
    || starting                || 0.000087   ||
    || checking permissions    || 0.000011   ||
    || Opening tables          || 0.000036   ||
    || init                    || 0.000030   ||
    || System lock             || 0.000013   ||
    || optimizing              || 0.000010   ||
    || statistics              || 0.000021   ||
    || preparing               || 0.000008   ||
    || FULLTEXT initialization || 0.276820   ||
    || executing               || 0.000010   ||
    || Sending data            || 0.000155   ||
    || end                     || 0.000008   ||
    || query end               || 0.000004   ||
    || closing tables          || 0.000016   ||
    || freeing items           || 0.000703   ||
    || cleaning up             || 0.000018   ||