自从进入这家公司以来,自己做的事情基本都是性能调优相关的。经过了这大半年的工作,感受颇多。
1.性能调优有时候很简单,只需要一个索引搞定
2.有时候调优很难,要和业务挂钩,在大数据量的情况下,即使再好的索引也没有用,尤其是业务需求不合理的情况下(此处的不合理是对数据来讲的,或许从业务上讲是合理的)。、
这几天看的一个调优就是一张大表,虽然只有200多万的记录数,但是由于表内包含了varchar2(3500)的大字段,使得这张表占了3.5个g的物理空间。
而且数据量严重倾斜
类型1 类型2 记录数
所以当用户输入参数type1=‘1’ and type2='1'的时候,性能尤其的差,而且用户的输入没有其他任何条件,还要排序,显示前50条记录。每次这个查询都要30+s,有时候甚至要50+s,很让人郁闷。没有其他办法,因为必须走全表扫描。
而当用户输入条件是type1=‘2’ and type2='2'的时候,性能就极其好了。更可怕的是,这条sql用到了首页显示内,每次有用户访问网站,都会发送这条sql,导致了大量排队,协调的排队现象很严重。严重影响了用户的体验。
这种情况,要么和用户协商,增加查询条件,要么就要对表进行改造,拆分出需要在首页显示的内容,建立小表。这样可以将查询响应时间缩短到2s+,或者更短。
但是在没有其他条件的情况下,如果数据量继续增加的话,后期的问题还是很严重,除非及时清理这张小表。但是这种做法还有一个不好的地方,就是需要修改程序代码。
恼人啊。。。。。。
1.性能调优有时候很简单,只需要一个索引搞定
2.有时候调优很难,要和业务挂钩,在大数据量的情况下,即使再好的索引也没有用,尤其是业务需求不合理的情况下(此处的不合理是对数据来讲的,或许从业务上讲是合理的)。、
这几天看的一个调优就是一张大表,虽然只有200多万的记录数,但是由于表内包含了varchar2(3500)的大字段,使得这张表占了3.5个g的物理空间。
而且数据量严重倾斜
类型1 类型2 记录数
1 | 1 | 2028480 |
1 | 2 | 553 |
1 | 3 | 102 |
2 | 1 | 48439 |
2 | 2 | 278 |
2 | 3 | 21 |
3 | 2 | 1 |
4 | 2 | 7 |
而当用户输入条件是type1=‘2’ and type2='2'的时候,性能就极其好了。更可怕的是,这条sql用到了首页显示内,每次有用户访问网站,都会发送这条sql,导致了大量排队,协调的排队现象很严重。严重影响了用户的体验。
这种情况,要么和用户协商,增加查询条件,要么就要对表进行改造,拆分出需要在首页显示的内容,建立小表。这样可以将查询响应时间缩短到2s+,或者更短。
但是在没有其他条件的情况下,如果数据量继续增加的话,后期的问题还是很严重,除非及时清理这张小表。但是这种做法还有一个不好的地方,就是需要修改程序代码。
恼人啊。。。。。。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7353848/viewspace-696084/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7353848/viewspace-696084/