替换Sequelize中的MySQL(或其他数据库)驱动程序,尝试使用一些AWS RDS实例中的原生驱动程序。这会显著提高性能并减少延迟。下面是一个使用原生MySQL驱动程序的例子:
// 引用AWS RDS原生驱动程序
const mysql = require('mysql2/promise');
// 建立连接池
const pool = mysql.createPool({
host: 'my-rds-host',
user: 'my-user',
database: 'my-database',
password: 'my-password',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
// 查询
async function doQuery() {
const conn = await pool.getConnection();
const [rows] = await conn.execute('SELECT * FROM my_table');
conn.release();
return rows;
}
doQuery();
使用Sequelize默认配置,每次查询或事务都会打开一个新的连接。这不仅会增加数据库服务器的负载,还会增加请求响应时间。您可以使用Sequelize连接池来减少这种开销,并提高性能。下面是一个启用Sequelize连接池的例子:
const Sequelize = require('sequelize')
// 建立连接池
const sequelize = new Sequelize('my_database', 'my_user', 'my_password', {
host: 'my_rds_host',
dialect: 'mysql',
pool: {
max: 10,
min: 0,
acquire: 30000,
idle: 10000
}
});
// 查询
async function doQuery() {
const rows = await sequelize.query('SELECT * FROM my_table');
return rows;
}
doQuery();
您可以通过启用缓存集群来提高
下一篇:AWSRDS事件订阅未被触发