使用最廣泛的選擇使用池選項是以下幾點:什麼是在database.yml中的database.yml
adapter
encoding
database
pool
username
password
socket
host
port
timeout
我知道使用的最上面,但池。 所以我想知道database.yml中池選項的用法,或者我們需要爲具有非常大流量的應用程序設置任何其他參數。
使用最廣泛的選擇使用池選項是以下幾點:什麼是在database.yml中的database.yml
adapter
encoding
database
pool
username
password
socket
host
port
timeout
我知道使用的最上面,但池。 所以我想知道database.yml中池選項的用法,或者我們需要爲具有非常大流量的應用程序設置任何其他參數。
它設置每紅寶石過程可能的連接的數量。因此,如果您正在穿線您的導軌應用,或者您使用的交易過度。這裏的限制取決於你的設置。這樣考慮:
所以它是有道理的每個過程可以打開至多20個連接的設定一個MySQL (50 * 20 == 1000)在給定的時間。所以你可以將pool
的值設置爲20或更少。
在「每個有100個線程」中,這100個符合上面的等式嗎? (50 * 20 == 1000) –
這是否意味着池大小僅取決於工作進程而不取決於線程? @moritz –
對於任何正在尋找這個問題的答案的人來說,基本思想似乎是數據庫只能支持這麼多的同時連接,所以需要一種方法來限制打開的連接。 pool
屬性指定在給定時間可以打開的最大連接數。
有關更多信息,請參閱http://guides.rubyonrails.org/configuring.html#database-pooling。該指南沒有明確說池是應用程序的總連接,但這是我閱讀後得到的感覺。
我明白了,但實際上做了什麼......這個允許的最大值是多少? – Salil