这样的一个SQL:select *
  from base_book_1  a, base_book_2 b
 where a.bookid =b.id
   and a.channelid = 2
   and b.status < 5a.channelid的数据分布:                                
333524  1              
134253  2
176078  3
46537  4
56259  5
64538  6
12197  7
36751  8b.status的数据分布: 
181           1
619084           2
2426           3
942           4
378           5
191           6channelid和status都创建索引,但由于数据倾斜度大,有时可能不走索引。关键是b.status取值小于5,该部分一定会走全表。对数据库性能造成
比较大的影响,时常观察到cache buffer chains的出现。目前开发人员也刚接手这个遗留项目,不清楚如何优化,如果从SQL角度该如何处理这样的业务逻辑?或是给开发人员提出什么样的整改意见?