mysql數(shù)據(jù)庫的并發(fā)優(yōu)化
作者:佚名 時(shí)間:2014-11-23 分享到:
在查詢方面,myisam存儲(chǔ)引擎的并發(fā)并沒有太大的問題,而且性能非常高,如果覺得光靠key cache來緩存索引還不夠快,還可以通過query cache功能來直接緩存query的結(jié)果集.
但是,由于myisam存儲(chǔ)引擎的表級(jí)鎖定機(jī)制,以及讀寫互斥,其并發(fā)寫的性能一直是讓人比較頭疼的問題,一般來說,我們能做的主要也就是只有以下幾點(diǎn)了.
1.打開concurrent_insert的功能,提高insert操作和select之間的并發(fā)處理,使二者盡可能并行,大部分情況下concurrent_insert的值被設(shè)置為1,當(dāng)表中沒有刪除記錄留下的空余空間時(shí)可以在尾部并行插入,這其實(shí)也是myisam的默認(rèn)設(shè)置,如果系統(tǒng)主要以寫為主,特別是大量insert的時(shí)候,為了盡可能地提高insert的效率,可以將concurrent_insert設(shè)置為2,也就是告訴myisam,不管在表中是否有刪除行留下的空余空間,都在尾部進(jìn)行并發(fā)插入,使insert和select互不干擾.
2.控制寫入操作的大小,盡量讓每次寫入操作都能很快完成,以防止時(shí)間過長(zhǎng)的阻塞動(dòng)作.
3.通過浪費(fèi)讀取效率來提高寫入效率,為了盡可能地讓寫入更快,可以適當(dāng)調(diào)整讀和寫的優(yōu)先級(jí)別,讓寫入操作的優(yōu)先級(jí)高于讀操作的優(yōu)先級(jí).
對(duì)于一個(gè)表級(jí)鎖定的存儲(chǔ)引擎來說,除了concurrent_insert比較特殊之外,基本上都是只能串行描寫,所以雖然上面給出了三點(diǎn)建議,但是后兩點(diǎn)只能算優(yōu)化建議,并不是真正意義上的并發(fā)優(yōu)化建議.