そのようなクエリを最適化する方法はありますか:
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