今天做了一个视图的性能优化,用户使用这个视图一般是通过create_date这个字段来查询资料,而且create_date是视图基表的索引,按理说用create_date可以快速查到资料,然而,视图sql的create_date前面用到了max,导致基表的create_date索引根本用不上,造成大量的全表扫描,用户感觉很慢。。。。
优化思路很明确,就是要让create_date这个索引能够用上,所以要去掉max的这个函数。这时我想到了exists,用中文都很好解释,最大即不存在比它大的!这样就可以调整逻辑,where里面加上not exists的条件,从而将max函数去掉,这样就可以用到create_date索引了。。。。。。。。这在开发过程中会经常遇到的,记住记住