全文查询 运行 先慢后快
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
是 运行 第二次,它可以简单地查找之前计算的结果。
有人知道有关此行为的一些信息吗?我运行宁在同一个数据库上这个查询
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
是 运行 第二次,它可以简单地查找之前计算的结果。