Mysql ускорение выборки и ORDER BY по полям связанных таблиц

Подскажите какие идеи могут быть по ускорению этого селекта?

SELECT
  work.w_id,
  work.fish_id,
  work.u_id,
  work.loc_id,
  work.w_weight,
  work.baze_id,
  work.w_weight_min,
  work.bait_id,
  work.w_count,
  bait.bait_name,
  fish.fish_name,
  baze.baze_name,
  location.loc_name,
  fish_max.fm_weight_max,
  fish_max.fm_id,
  bait.bait_type,
  fish.fish_weight_absolute
FROM work
  INNER JOIN fish
    ON work.fish_id = fish.fish_id
  INNER JOIN bait
    ON work.bait_id = bait.bait_id
  INNER JOIN baze
    ON work.baze_id = baze.baze_id
  INNER JOIN location
    ON work.loc_id = location.loc_id
  INNER JOIN fish_max
    ON work.fish_id = fish_max.fish_id
    AND work.baze_id = fish_max.baze_id
WHERE work.u_id = 2
ORDER BY fish.fish_name, work.w_count DESC

В двух словах есть таблица work которая хранит в себе записи id полей связаных таблиц "словарей". В таблице work > 130 000 записей. В остальных до 1000.

При использовании ORDER BY fish.fish_name, work.w_count DESC скорость выбора значительно падает из за сортировки по связаной таблице. Если убрать ORDER BY fish.fish_name, скорость выполнений значительно возврастет с 1,6сек до 0.3, но все равно не сказал бы что моментально. Так же EXPLAIN отображает Using where; Using filesort.


Ответы (0 шт):