我需要澄清一下池是什么以及它的作用。文档说 Sequelize 将在初始化时设置一个连接池,因此理想情况下,您应该只为每个数据库创建一个实例。
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'
});
原文由 Mark A 发布,翻译遵循 CC BY-SA 4.0 许可协议
当您的应用程序需要从数据库中检索数据时,它会创建一个数据库连接。创建此连接涉及应用程序和数据库的一些时间和机器资源开销。许多数据库库和 ORM 会在可能的情况下尝试重用连接,这样它们就不会产生一遍又一遍地建立数据库连接的开销。
pool
是这些保存的、可重用的连接的集合,在您的情况下,Sequelize 从中提取这些连接。你的配置反映您的游泳池应该:
max: 5
)min: 0
)idle: 10000
)tl;dr:池是有助于提高数据库和整体应用程序性能的好东西,但如果您对池配置过于激进,则可能会对整体性能产生负面影响。