我有一个超过 12 列的表。这是用于检索最新 7 条记录的 mysql 查询
SELECT * FROM data WHERE user_id IN(12,10,7,1) HAVING continent IN('Europe','America','Australia') AND NOT MATCH(weather) AGAINST('+"[blues]"' IN BOOLEAN MODE) || continent = 'Asia' AND MATCH(weather) AGAINST('+"[purples]"' IN BOOLEAN MODE) ORDER BY tb_id DESC LIMIT 7
总行数超过5 million
并且user_id
是一个索引列,tb_id
其中PRIMARY KEY
. 当我使用EXPLAIN
前面的SELECT
. MySQL 表示它将从总共 500 万条记录中读取超过 40 万条记录。
那么我应该索引大陆列还是在这种情况下无济于事?
这是解释结果
id = 1; select_type = SIMPLE; table = data; possible_keys = user_id; key = user_id; ref = NULL; rows = 582; Extra = Using where, Using filesort