我是一个不和谐的水平机器人,机器人将插入一个随机数量的XP每次用户键入一条消息在聊天。要查看用户级别,我有一个!level命令。就像这样:
sql.query(`SELECT * FROM WMembers where DiscordID = ${message.author.id}`, (err, rows) => {
if(err) console.log(err)
if(!rows[0]) return message.channel.send("The user has no XP!")
let xp = rows[0].XP
let level = rows[0].Level
let nextLevel = level * 40
message.channel.send(**Level: **${level - 1}\n**Points: **${xp} / ${nextLevel}`)
})然而,当我调用命令超过2-3次时,查询开始执行得非常慢,需要5分钟才能返回值.。
下面是我的sql代码:
const pool = mysql.createPool({
host : keys.dbHost,
port : 3306,
user : keys.dbUser,
password: keys.dbPass,
database: keys.dbName
});
let sql = {};
sql.query = function(query, params, callback) {
pool.getConnection(function(err, connection) {
if(err) {
if (callback) callback(err, null, null);
return;
}
connection.query(query, params, function(error, results, fields) {
connection.release();
if(error) {
if (callback) callback(error, null, null);
return;
}
if (callback) callback(false, results, fields);
});
});
};如果有人能帮我,我会非常感激的。谢谢。
发布于 2020-05-17 10:50:00
您显然没有足够的内存来存储数据库:https://dev.mysql.com/doc/mysql-monitor/4.0/en/system-prereqs-reference.html
MySQL的最低要求要求2GB内存。使用128‘t不会有多大进展。在这一点上,就像@ database建议的那样,限制应用程序与数据库的连接数量也会节省一些内存。
https://stackoverflow.com/questions/61835427
复制相似问题