Comment utiliser les connexions de base de données dans la piscine Sequelize.js
J'ai besoin de quelques précisions à propos de ce que la piscine est et ce qu'il fait. Les docs disent Sequelize va configurer un pool de connexion lors de l'initialisation de sorte que vous devrait idéalement ne jamais créer une instance par la base de données.
var sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'mysql'|'mariadb'|'sqlite'|'postgres'|'mssql',
pool: {
max: 5,
min: 0,
idle: 10000
},
//SQLite only
storage: 'path/to/database.sqlite'
});
Pourquoi les pools de connexions sont utiles: stackoverflow.com/questions/44081488/...
OriginalL'auteur Mark A | 2016-02-20
Vous devez vous connecter pour publier un commentaire.
Lorsque votre application a besoin de récupérer des données à partir de la base de données, il crée une connexion de base de données. La création de cette connexion implique une surcharge de temps et de ressources de la machine pour votre application et la base de données. De nombreuses bibliothèques de base de données et de l'ORM va essayer de réutiliser les connexions lorsque cela est possible, afin de ne pas payer les frais généraux de l'établissement de cette connexion DB, encore et encore. Le
pool
est la collecte de ces économies, réutilisable connexions que, dans votre cas, Sequelize tire. Votre configuration dereflète que votre piscine doit:
max: 5
)min: 0
)idle: 10000
)tl;dr: les Piscines sont une bonne chose que des bases de données et de l'ensemble de la performance de l'application, mais si vous êtes trop agressif avec votre configuration de pool de vous peut avoir un impact sur les performances globales négativement.
idle
de configuration, si ma requête n'est plus de 10 secondes à s'exécuter, est la fermeture de la connexion sans moi d'obtenir une réponse?OriginalL'auteur P Ackerman
piscine est drainant erreur
J'ai trouvé ce fil dans ma recherche pour une Sequalize erreur a été de donner à mes node.js app: piscine est drainant. Je ne pouvais pas pour la vie de me comprendre. Donc, pour ceux qui suivent mes traces:
Le problème est que j'ai été la fermeture de la base de données de plus tôt que je le pensais, avec la commande
sequelize.closeConnections()
. Pour une raison quelconque, au lieu d'une erreur comme "la base de données a été fermée", c'était plutôt de donner l'obscur erreur "de la piscine se vide'.OriginalL'auteur Chris Troutner
Semble que vous pouvez essayer de mettre
pool
àfalse
pour éviter d'avoir de la piscine bing créé. Voici l'API table détails :http://sequelize.readthedocs.org/en/latest/api/sequelize/OriginalL'auteur shershen