首页 > 数据库 >sql性能优化

sql性能优化

时间:2023-12-29 18:25:06浏览次数:28  
标签:tickInfoArr const 性能 sql each new dec 优化 Decimal

前言:实现完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,

标签:tickInfoArr,const,性能,sql,each,new,dec,优化,Decimal
From: https://www.cnblogs.com/zccst/p/17935486.html

相关文章

  • debezium+kafka实现mysql数据同步(debezium-connector-mysql)
    1.情景展示在企业当中,往往会存在不同数据库之间的表的数据需要保持一致的情况(数据同步)。如何将A库a表的数据同步至B库a表当中呢?(包含:新增、修改和删除)往往不仅仅需要保持数据的一致性,还要保证数据的即时性,即:A库a表的数据发生变化后,B库a表也能立刻同步变化。实时保持两表数据......
  • 华为云耀云服务器L实例-微人事前后端分离人力资源管理系统-mysql配置vhr数据库准备
     华为云耀云服务器L实例-微人事前后端分离人力资源管理系统-mysql配置vhr数据库准备  产品官网:https://www.huaweicloud.com/product/hecs-light.html 项目源代码地址:https://github.com/lenve/vhr  今天我们采用可靠更安全、智能不卡顿、价优随心用、上手更简......
  • mysql日期相关函数使用
    最近要经常用到mysql的日期相关函数,但以前用的少,索性总结下1DATE_FORMAT(date,format)published_at字段以datetime类型存储SELECTtitle,DATE_FORMAT(published_at,'%Y-%m-%d')FROMblog_noteWHEREDATE_FORMAT(published_at,'%Y-%m')='2023-09'    2STR_TO_DAT......
  • EventLog Analyzer:优化企业网络安全的不可或缺之选
    随着企业信息技术的不断发展,网络安全问题也变得日益严峻。在这个数字化时代,企业网络日志收集变得尤为重要,以便及时发现和应对潜在的威胁。在众多网络日志管理工具中,EventLogAnalyzer凭借其卓越的功能和易用性成为企业网络安全的不可或缺之选。EventLogAnalyzer1.强大的日志收集......
  • 安装MYSQL
    1.下载MYSQL数据库官网:https://www.mysql.com/,下载MySQLCommunityServer压缩版2.解压压缩包路径:E:\mysql-8.0.35-winx643.设置环境变量右击我的电脑,属性=》高级系统设置=》环境变量=》在系统变量中找到path,双击=》新建(环境变量)=》在解压的MYSQL目录下找到bi......
  • 基于SQLAlchemy的模型,它不一定需要​​__init__​​​函数
    这个User类是一个基于SQLAlchemy的模型,它不一定需要__init__函数。SQLAlchemy会自动为你的模型创建一个默认的__init__函数,你可以直接创建对象,如user=User(id=1,name='username')。但是,如果你需要在创建对象时执行一些自定义操作,你可以提供自己的__init__函数。例如:classUser(d......
  • MariaDB VS MySQL 2023年技术总结
    专业评测报告来源于Percona,这里摘要关键部分展示二者区别。https://www.percona.com/blog/mysql-vs-mariadb-reality-check/MariaDBvs.MySQLvsPerconaServerforMySQL:一般比较MariaDB、MySQL和PerconaServerforMySQL都是非常流行的关系数据库管理系统。在下图中,我们将......
  • C++ Qt开发:SqlRelationalTable关联表组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍SqlRelationalTable关联表组件的常用方法及灵活运用。在上一篇文章中详细介绍了SqlTableModle组......
  • postgresql数据库的基本使用
    登录控制台root@kali:~#sudo-upostgrespsqlpsql(10.5(Debian10.5-1))Type"help"forhelp.postgres=#设置postgres密码postgres=#\passwordpostgres创建一个新用户msf_db因为postgers用户具有很高的权限,通常我们不会直接以这个身份登录,而是会另外创建一个新......
  • postgresql 14 主备切换
    主从切换1.停止主节点$pg_ctlstopwaitingforservertoshutdown....doneserverstopped2.从节点提升为主节点$pg_ctlpromotewaitingforservertopromote....doneserverpromoted验证是否切换成功$psql-h127.0.0.1-p5432-Upostgres-W-c"select......