这两天的值班,让我对自己的不足和学习方法有个感官的认识,也让我收益匪浅,本着服务大家的原则,在这里为大家分享我这近一个月的收获和感受!
首先我们看一个现象:
这是第一场考试的截图:
这是第二场考试的截图:
我们分析发现:cpu的使用率在逐步的提升,在最后一场,cpu的使用率达到80%以上,我们查了,数据库,只一个题型的存储量就达到了20多万条数据!
这让我们很苦恼,为什么会这样,是sql的吞吐量出问题了吗,我们马上到网上去查,发现并不是,sql的吞吐量可以轻松处理百万级别的数据量,是我们的程序有问题吗?我想,应该是的,在我们查找了多方资料后,发现,大数据量的处理,涉及到sql的执行机制,我们在这里将网上的图拿过来,大家一起研究:
服务器接收到SQL语句之后,要经过如下步骤完成操作:Parse(解析)—> Bind(绑定)—> Execute(执行)。
1.此为整体流程图:
2.此为select语句流程图:
3.此为其他语句流程图:
大家都可以看到,每个语句都有缓冲池和循环,这也题型我们,在处理大数据时,谨慎使用循环,如果不得不用,要考虑好解决循环时间过长,造成超时的情况(默认为30s),这里引入下一个要说的问题,就是多线程!敬请期待下一篇博客!
总结:
工作和学习永远是相辅相成的,如果只把工作当成工作,最后是码农,或者其他,只有把工作当成自己的事,尽心尽力做好,才能相互促进,共同进步!