配合项目性能测试中的学习收获

来源:互联网 发布:淘宝卖家设置产品折扣 编辑:程序博客网 时间:2024/06/06 04:01

1.提高SQL执行效率

一个常用的查询交易中,查询时间为11s,最后发现,原因不仅仅在于sql的执行效率,更主要原因是查询的结果为40W+的数据量,如此大的查询结果势必导致时间很长;
经分析,该查询交易left join了5张表,且其中4张表的数据量为30W~90W;在商讨后,决定只留下两张表做查询的视图;由此查询2W数据时间降至5s,但仍很慢,又发现SQL语句where条件中使用了concat函数,于是改用另一字段,时间将至2s以下;后又在常用的查询条件上添加了一组索引,则查询结果为2W数据,用时0.3s;但整个查询交易中查询这张视图3次,即共用时0.9s;在此情况下已无法再做优化

2.降低有多通讯交易的处理时间

<1>.关闭屏幕输出日志
<2>.调大文件句柄数

总结:

<1>.数据库设计尤为重要,查询2张表和查询5张表的效率显而易见
<2>.查询结果的数据量会成为时间的致命伤,查询数据量可以上百万上千万,但查询结果的数据量若过大,则会影响数据查询时间
<3>.SQL语句中尽量少使用函数,会增加时间
<4>.为常用的字段添加索引,有助于降低sql语句的执行时间
<5>.一个交易中尽量减少sql的执行次数
<6>.Order by XX desc,执行效率低可为该字段添加索引
<7>.物化视图虽好,但也有弊端


0 0