Jacobc' Blog

纵有疾风起,人生不言弃

MySQL 报错:Prepared statement contains too many placeholders 解决

通过报警遇到一个接口报错,具体报错信息是 failed: users get one failed: Error 1390 (HY000): Prepared statement contains too many placeholders 根据报警日志,找到对应代码位置(DAO 层代码,业务无关): func (userDAO) GetAllByUserIds(ctx context.Context, uids []int) ([]model.User, error) { dbSession := dbConn.WithContext(ctx) var users []model.User err := dbSession.Model(&model.User{}).Where("id in ?", uids).Find(&users).Error return users, err } 定位到问题代码,发现 uids 是一个切片,里面存放了 16w 个用户 id,sql 用的 in 语句

一些功能、工具记录

关于工具 tableflip 优雅热升级工具 singleflight 防缓存击穿利器 loongsuite-go-agent Go 应用自动获得全链路可观测能力 传送门 关于功能 流程编排 rulego go-workflow 上线发布系统 Spug SQL 审核系统 hhyo/Archery 多 Agent crewai.com metaAI Parlant 是可控 LLM 代理框架,解决大模型输出不稳定的问题。适合做客服机器人、任务助手这类需要精确控制的场景,不是纯聊天而是能干活的 AI Agent API 测试工具 hoppscotch 是开源版 Postman,支持 REST、GraphQL、WebSocket。有 Web、桌面、CLI 版本,可以自己部署,数据完全本地化,适合企业内网。更新很活跃。 浏览器 Ladybird 是真从零写的独立浏览器,不是 Chromium 换皮。从 SerenityOS 分出来的,成立了非营利组织,承诺不搞商业化套路。8 个全职工程师,2026 年夏天 Alpha 版本 水印 blind_watermark 是个 Python 盲水印库,核心亮点是不需要原图就能提取水印。做版权保护、图片溯源的兄弟们可以用这个给图片加暗水印