在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  數(shù)據(jù)庫  網(wǎng)絡(luò)安全/ JAVA起5個線程查5個sql會比1個線程查5個sql更快嗎?

JAVA起5個線程查5個sql會比1個線程查5個sql更快嗎?

項目背景:內(nèi)網(wǎng)OLAP應(yīng)用,具體來說是做給領(lǐng)導看的各種統(tǒng)計圖表。項目并發(fā)量不大,所以可以為一次請求用多個線程,瓶頸在于統(tǒng)計sql太慢(用的postgresql)

問題描述:現(xiàn)在有5個慢sql,我們想優(yōu)化性能,方案1是web服務(wù)器單線程串行的發(fā)請求給數(shù)據(jù)庫查5個sql,方案2是web服務(wù)器有5個線程去發(fā)請求給數(shù)據(jù)庫查5個sql。

問題:忽略方案2省掉的網(wǎng)絡(luò)IO延時,方案2查完5個sql能更快么?

我的理解是方案2并不能更快,理由是:

數(shù)據(jù)庫那慢的是磁盤IO,對于數(shù)據(jù)庫來說,1個連接查5個sql或者5個連接查5個sql總歸要串行的掃5遍盤,應(yīng)該并不能優(yōu)化?
請問這樣理解對嗎?5個線程會更快嗎?

回答
編輯回答
柒喵

你可以試驗一下,我的實驗結(jié)果是方案2快。
方案1的5個sql串行,postgre服務(wù)器并沒有充分利用多核優(yōu)勢,速度慢。
方案2并發(fā)5個sql,相當于5個連接,postgre服務(wù)器利用多核優(yōu)勢,速度快。

不過你說的也有道理,我沒有測試出來你理解的結(jié)果,說明磁盤IO并不是影響速度關(guān)鍵。

2017年2月2日 19:45
編輯回答
毀了心

我想知道數(shù)據(jù)庫設(shè)計和sql和數(shù)據(jù)量

2017年2月25日 11:26