200万件压力测试,影响速度的案例

案例1:

前提:batch执行,从文件读入10万条数据,insert到数据库中,没有中间commit(win10、postgresql)。

问题:5万件执行时间00:01:15,10万件执行时间01:05:00。

原因:没有commit,所有数据都在缓存中,缓存炸了。

对策:增加数据库缓存,\PostgreSQL\10\data\postgresql.conf中“shared_buffers = 128MB”》》》“shared_buffers = 256MB”,重启动postgresql,在services.msc中重启,或者,在cmd中“pg_ctl restart”。

结果:10万件执行时间00:00:30,200万件执行时间00:19:00.

案例2:

前提:同案例1,外加select数据库刚刚insert的数据,没有中间commit。

问题:10万件执行01:10:00

原因:数据量大,select的集合太大,检索速度太慢。

对策:检索项目,表定义中追加该项目的index,加快检索速度。

结果:10万件执行时间00:00:30,200万件执行时间00:19:00.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章