跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 有两个 mysql 优化的问题求指导
未分類
2 10 月 2020

有两个 mysql 优化的问题求指导

有两个 mysql 优化的问题求指导

資深大佬 : enjoychen0318 5

create table t1( id int primary key,  a int, b int ); create table t2( id int primary key,  a int, b int );  select t1.*, t2.* from t1     left join t2 on t1.a = t2.b where XXXX order by t1.id desc limit 1,10 

问题:

  1. t1 和 t2 的数据量都是 100w,有时候因为 where 条件的不同,导致 join 的时候驱动表会变化,当 t2 作为驱动表的时候 t1 排序就使用不到索引了。在不强制选择驱动表的情况下,有啥优化方案么?

  2. 现在我们公司后台管理有个列表页查询关联的表有点多,筛选条件也比较多,count 和查询都有点慢,但是关联的表应该是不能少。这个时候该怎么优化?做缓存可行么,比如说将筛选条件作为 key 缓存起来。但数据更新快,感觉缓存失效的情况太多,这种方法不太可行

有大佬能帮帮忙么

大佬有話說 (3)

  • 資深大佬 : PonysDad

    把查询计划贴上来看看

  • 主 資深大佬 : enjoychen0318

    @PonysDad
    有 t2 的 where 时,mysql 优化器认为 t2 是小表,选择 t2 做驱动表的时候会 Using temporary; Using filesort

  • 資深大佬 : XDJI

    1.首先你这个 left join t2 on t1.a = t2.b 用 join buffer 了 直接 t1 单次 t2 多次全表扫描了
    给 t1.a t2.b 加个索引试下呢
    2.得看你的语句 explain 出来看下呢 如果不是强一致缓存倒是一个方法,更新快不是问题 可以在包个内存缓存定时同步不过就麻烦了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具