我面临着MySQL查询的性能问题,即使是索引所需的列,等等……加载10个第一结果需要超过5秒,这是由于ORDER BY
个,当我删除它时,只需要几毫秒就可以加载!
以下是SQL查询:
select
*
from
`feedbacks` f
inner join carriers c on c.id = f.carrier_id
where
c.id in (25619, 25620, 25621, 25637, 25758, 25759, 25760, 25761, 25762, 25763, 25976, 25983, 26459, 26460, 27003, 27006, 27052, 27295, 27325, 27387, 27532, 27533, 27534, 27535, 27536, 27537, 27538, 27541, 27542, 27543)
and f.`deleted_at` is null
order by
f.`created_at` desc
limit 10 offset 0
feedbacks
表上有一些索引:
feedbacks_status_id_foreign BTREE FALSE status_id
feedbacks_push_id_foreign BTREE FALSE push_id
feedbacks_created_at_index BTREE FALSE created_at
feedbacks_carrier_id_created_at_token_index BTREE FALSE carrier_id,created_at,token
feedback_test_index BTREE FALSE created_at,carrier_id
PRIMARY BTREE TRUE id
在carriers
张表中:
idx_creator_id BTREE FALSE creator_id
carriers_team_id_foreign BTREE FALSE team_id
carriers_slug_unique BTREE TRUE slug
carriers_slug_organization_id_created_at_index BTREE FALSE slug,created_at
PRIMARY BTREE TRUE id
但即使有了所有这些索引,也需要很长时间!
欢迎就此问题提供更多帮助:d