全文查询 运行 先慢后快

Full Text query run slow first time and then fast

有人知道有关此行为的一些信息吗?我运行宁在同一个数据库上这个查询

SELECT
                mk.IdMedia                    
            FROM
                mediakeyword mk                  
            WHERE
                MATCH(mk.SearchText) AGAINST('+"france"' IN BOOLEAN MODE) > 0

这个

的计划
"id"    "select_type"   "table" "type"  "possible_keys" "key"   "key_len"   "ref"   "rows"  "Extra"
"1" "SIMPLE"    "mk"    "fulltext"  "SearchText"    "SearchText"    "0" \N  "1" "Using where"

SearchText 有全文索引,引擎是 MyISAM

奇怪的是第一次我 运行 查询计算时间是 2,324 s 第二次是 0,015 ,为什么?

有一种方法可以指示 mysql 具有相同的第二种行为吗?

FULLTEXT 在 InnoDB 中可用;考虑迁移。

有两件事可以导致"first is slow; second is fast":

  • 第一次运行查询时,可能需要从磁盘中获取索引and/or数据块。第二次,这些块缓存在 RAM 中,因此速度更快。

  • "Query cache",如果启用,将记录查询及其结果集。所以,如果 完全 相同的 SELECT 是 运行 第二次,它可以简单地查找之前计算的结果。