sql性能优化
前言:实现完rpc接口后,开始进行性能优化,提升响应效率。
1,查全量表,如果表格几万条,甚至更多信息时,导致性能下降。
// const tickInfos = await knex(SRC20_TICK_TABLE);
// const tickInfoMap = {}
// for (let item of tickInfos) {
// tickInfoMap[item.tick] = item
// }
解决办法,应该加where条件。
const res = await knex(SRC20_VALID_TABLE).whereIn('tx_hash', [params.tx_hash]) const resArr = [] for (let each of res) { const tickInfoArr = await knex(SRC20_TICK_TABLE).whereIn("id", [each.tick]); if (!tickInfoArr.length) { throw new Error("tick not found") } const dec = tickInfoArr[0].dec || 18 resArr.push({ op: each.op, tick: each.tick, max: toNonExponential(new Decimal(tickInfoArr[0].max).mul(new Decimal(10**dec))) || "18446744073709551615", // uint64_max lim: toNonExponential(new Decimal(tickInfoArr[0].lim).mul(new Decimal(10**dec))) || "18446744073709551615", // uint64_max amt: (each.op === 'deploy' ? 0 : toNonExponential(new Decimal(each.amt).mul(new Decimal(10**dec)))) || new Decimal(0), // 0 dec: dec, from: each.sender || "", to: each.creator || "", valid: true, msg: "ok" }) }
2,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?