mysql 多表关联查询&大数据量下 sql优化

1.问题:

    由于mysql的自动优化,在多表关联查询&大数据量下,可能出现没有使用最优索引或者最优驱动表。

2.方案:

  • 使用 强制索引 force index,示例
SELECT * FROM TABLE1 FORCE INDEX (IDX_NAME) JOIN TABLE2 
  • 使用 强制链接顺序,示例
SELECT * FROM TABLE1 STRAIGHT_JOIN TABLE2 

3.优化结果:

   业务上从3.6秒 优化至1秒。 性能提升4倍

 

4.业务建议:

  • 在短期内:在涉及到多表join查询,且耗时大于1.5秒场景。具体抓到该SQL,可以使用 straight_join
  • 长期: 架构升级,不使用多表join查询
  • 追加索引

 

你可能感兴趣的:(mysql)