Les options les plus utilisées dans database.yml sont les suivantes:
adapter
encoding
database
pool
username
password
socket
Host
port
timeout
Je connais l'utilisation de la plupart des éléments ci-dessus, mais la piscine. Je veux donc savoir à quoi sert l'option pool dans database.yml ou il y a tout autre paramètre que nous devons définir pour l'application ayant un trafic très important.
Il définit le nombre de connexions possibles par processus Ruby. Donc, si vous utilisez votre application Rails, ou si vous utilisez les transactions de manière excessive. Les limites ici dépendent de votre configuration. Considérez ceci:
il est donc logique que chaque processus puisse ouvrir au plus 20 connexions (50 * 20 == 1000) à un moment donné. Vous devez donc définir la valeur pool
sur 20 ou moins.
Pour quiconque cherche une réponse à cette question, l'idée de base semble être qu'une base de données ne peut prendre en charge que autant de connexions simultanées, il faut donc trouver un moyen de limiter les connexions ouvertes. L'attribut pool
spécifie le nombre maximal de connexions pouvant être ouvertes à un moment donné.
Voir http://guides.rubyonrails.org/configuring.html#database-pool pour plus d'informations à ce sujet. Le guide ne dit pas explicitement que le pool est le nombre total de connexions pour l'application, mais c'est le sens que j'obtiens après l'avoir lu.
pool
est la configuration de la taille du pool de connexions, qui est 5 par défaut.
http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/ConnectionPool.html