有没有办法优化这样的查询:
SELECT * FROM tbl WHERE tid=8 ORDER BY col_a*col_b DESC LIMIT 10;
col_a 和 col_b 是 INT 类型
我当然知道我可以创建 col_c 来保存该数据,但希望 MySQL 有某种方法可以将这些数据直接保存在索引中。
此查询当前大约需要 10 秒(取决于有多少行与相关键匹配)。这是一个示例 EXPLAIN 输出:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE tbl ref tid_uid, tid_col_a tid_uid 4 const 396816 Using where; Using filesort