sql的in语句在gorm中的查询方式模型分享
目录背景思路代码模型附带测试对比背景条件查询可能的两种查询方式第一种select a,b from Table where c in(1,2);第二种select a,b from Table where c 1select a,b from Table where c 2查询两次。如果条件c的数据并不多则完全可用第二种。但是如果in中的参数非常多呢单个查询显然极其耗费时间且从常理推断如果用in则不可能也不能直接in里面写几百、几千甚至几万个参数in中所携带参数大于200性能有所下降这种情况下如何处理到底行不行往后看、思路代码模型使用in分批传入参数一批比如200个参数代码如下start : 0 for i : 0; i selectCount; { i start 200 if i (selectCount - 1) { i selectCount - 1 } Log.Logf(2, reset: start%v, i%v, selectCount%v, start, i, selectCount) thisBatch : list[start:i] if len(thisBatch) 0 { continue } str : strings.Join(thisBatch, ,) var obj []XxxYy if err db.Raw(select a,b from table where c in( str )).Find(obj).Error; err ! nil { code cm.DbExecError return } infoList append(infoList, obj...) if i selectCount-1 { break } start i }由此大批量的数据都可快速查出来!附带测试对比实际数据要查询的参数为5万5千条结果如下一次查询一个查完需耗时3054秒使用in批量查询当in中参数数量为500时只耗时5秒钟即可查完。对比非常明显下面是各个数量下的耗时数据450时测试结果以毫秒展示通过实践在使用框架的基础下发现in中的参数可以很大整体情况看数量越大效率越高以下是验证结果50耗时52秒, 0分钟 100耗时25秒, 0分钟 150耗时18秒 180耗时15秒, 0分钟 200耗时13秒, 0分钟 230耗时12秒, 0分钟 250耗时11秒, 0分钟 280耗时9秒, 0分钟 300耗时10秒, 0分钟 350耗时8秒, 0分钟 400耗时7秒, 0分钟 450耗时6396毫秒 500耗时5350毫秒 550耗时4674毫秒 600耗时4619毫秒 650耗时4180毫秒 700耗时3977毫秒 750耗时3593毫秒 800耗时3577毫秒 850耗时3192毫秒 900耗时2901毫秒 950耗时3334毫秒 1000耗时2841毫秒 1100耗时2378毫秒 1200耗时2188毫秒 1300:耗时2381毫秒 1400:耗时2112毫秒 1500:耗时2082毫秒 1600:耗时2044毫秒 1700:耗时1803毫秒 1800:耗时1652毫秒 1900:耗时1793毫秒 2000:耗时1609毫秒 2100:耗时1494毫秒 2200:耗时1570毫秒 2300:耗时1381毫秒 2400:耗时1414毫秒 2500:耗时1379毫秒 2600:耗时1311毫秒 2700:耗时1530毫秒 2800:耗时1333毫秒 2900:耗时1239毫秒 3000:耗时1225毫秒 3100:耗时1352毫秒 3200:耗时1319毫秒 3300:耗时1373毫秒 3400:耗时1347毫秒 3500:耗时1234毫秒 3700:耗时1197毫秒 4000:耗时1143毫秒 4500:耗时1242毫秒 5000:耗时1089毫秒 6000:耗时1081毫秒 6500:耗时1067毫秒 7000:耗时958毫秒 8000:耗时957毫秒 8500:耗时896毫秒 9000:耗时924毫秒 9500:耗时947毫秒 10000:耗时867毫秒 10500:耗时945毫秒 11000:耗时945毫秒 12000:耗时864毫秒 13000:耗时938毫秒 14000:耗时835毫秒 15000:耗时821毫秒 16000:耗时912毫秒 17000:耗时867毫秒 18000:耗时1022毫秒 19000:耗时850毫秒 20000:耗时837毫秒 21000:耗时896毫秒 25000:耗时764毫秒 30000:耗时836毫秒 35000:耗时692毫秒 40000:耗时824毫秒可以看到批处理减少了大量数据库调用的固定成本。

相关新闻

风云格式工厂隐私政策

风云格式工厂隐私政策

风云格式工厂隐私政策 开发者:大连世纪成交科技服务有限公司 发布日期:2021年9月27日 更新日期:2021年9月27日 生效日期:2021年9月27日 本软件尊重并保护所有使用服务用户的个人隐私权。除本隐私权政策另有规定外,在未…

2026/10/9 1:15:52 阅读更多 →
一些 IoT 工程师应该了解的网络知识

一些 IoT 工程师应该了解的网络知识

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 1:15:52 阅读更多 →
CSS代码格式化

CSS代码格式化

本文目录1. 背景2. 为什么要进行代码格式化3. 如何进行代码格式化4. 如何快捷的进行格式化5. 小结1. 背景 为什么单独拿出一章来讲代码格式化的问题,是因为我发现初学者,不理解为什么要进行代码格式化,以及如何进行代码格式化。 本篇就来说…

2026/10/9 1:15:52 阅读更多 →

最新新闻

AI日报从0到1:筛选逻辑、工具链配置与90分钟生产流程

AI日报从0到1:筛选逻辑、工具链配置与90分钟生产流程

1. AI日报这个栏目到底在做什么做AI日报这件事,我从2024年底开始坚持到现在,中间断更过两次,一次是因为信息源太杂导致筛选成本失控,一次是因为写得太像新闻通稿自己都不想看。后来我把整个流程重新拆了一遍,才找到可持…

2026/10/9 1:47:12 阅读更多 →
GEPA 实验追踪指南:用 TrackingConfig 把优化过程接入 WandB 与 MLflow

GEPA 实验追踪指南:用 TrackingConfig 把优化过程接入 WandB 与 MLflow

AI Agent提示工程模型优化 【免费下载链接】gepa Optimize prompts, code, and more with AI-powered Reflective Optimization 项目地址: https://gitcode.com/gh_mirrors/ge/gepa 点击查看 免费下载 本篇指南聚焦 GEPA 仓库中 optimize_anything 流程的**实验追踪…

2026/10/9 1:47:12 阅读更多 →
PWM脉宽调制原理与实战:从LED调光到电机调速的完整指南

PWM脉宽调制原理与实战:从LED调光到电机调速的完整指南

1. 内容整体设计与思路拆解1.1 从一个"闪灯"的现象说起很多人第一次接触 PWM,都是被 LED 调光这个场景带进来的。Arduino 上一个analogWrite(),51 单片机上一个定时器中断翻转 IO,灯就从全亮变成了"半亮"。但如果你直接拿…

2026/10/9 1:47:12 阅读更多 →
Apache CouchDB Nouveau:基于 Lucene 的库级全文搜索从入门到源码剖析

Apache CouchDB Nouveau:基于 Lucene 的库级全文搜索从入门到源码剖析

数据库文档数据库后端 【免费下载链接】couchdb Seamless multi-primary syncing database with an intuitive HTTP/JSON API, designed for reliability 项目地址: https://gitcode.com/gh_mirrors/co/couchdb 点击查看 免费下载 Nouveau 是 Apache CouchDB 中用于…

2026/10/9 1:47:12 阅读更多 →
Trellis 中 Skills、Commands、Prompts 与 Workflows 的差异、路径与本地化改造指南

Trellis 中 Skills、Commands、Prompts 与 Workflows 的差异、路径与本地化改造指南

桌面应用开发工具 【免费下载链接】EcoPaste 🎉跨平台的剪贴板管理工具 | Cross-platform clipboard management tool 项目地址: https://gitcode.com/gh_mirrors/ec/EcoPaste 点击查看 免费下载 在本仓库(EcoPaste,一个已由 tre…

2026/10/9 1:47:12 阅读更多 →
使用 VS Code Cache Explorer 诊断提示词缓存:定位 Cache Miss、Token 成本与延迟问题

使用 VS Code Cache Explorer 诊断提示词缓存:定位 Cache Miss、Token 成本与延迟问题

文档教程 【免费下载链接】vscode-docs Public documentation for Visual Studio Code 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-docs 点击查看 免费下载 在 Visual Studio Code 的 GitHub Copilot Chat 与 Agent 工作流中,语言模型提供商会…

2026/10/9 1:46:12 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 13:34:55 阅读更多 →