有两个 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
问题:
-
t1 和 t2 的数据量都是 100w,有时候因为 where 条件的不同,导致 join 的时候驱动表会变化,当 t2 作为驱动表的时候 t1 排序就使用不到索引了。在不强制选择驱动表的情况下,有啥优化方案么?
-
现在我们公司后台管理有个列表页查询关联的表有点多,筛选条件也比较多,count 和查询都有点慢,但是关联的表应该是不能少。这个时候该怎么优化?做缓存可行么,比如说将筛选条件作为 key 缓存起来。但数据更新快,感觉缓存失效的情况太多,这种方法不太可行
有大佬能帮帮忙么
大佬有話說 (3)