mysql - MySQL 中 FIELD() 函数的限制(以字节数/参数数计)是多少?
问题描述
我正在考虑使用https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_field,但它没有说明它可以有多少值的任何限制支持。
有没有人对此有任何见解?谢谢!
解决方案
我不知道每个语法对 FIELD() 函数的参数数量有任何限制。我假设它受到 SQL 查询的最大长度的限制。
任何 SQL 查询的长度限制都由max_allowed_packet
字节决定。MySQL 5.7 中这个变量的默认值是 4MB。它可以增加到 1GB。https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_allowed_packet
我同意@Uueerdo — 如果您生成的表达式列表超过 4MB,那么您真的应该质疑您的任务方法是否是解决它的最佳方法。
我猜想 FIELD() 函数将以线性方式比较参数,因为实现可能从未猜到有人会提供很长的列表。因此,为每一行搜索数以万计的参数可能会成为一个糟糕的性能瓶颈。
推荐阅读
- python-3.x - 在更新值时迭代熊猫数据框
- bash - 从 EC2 实例获取输入脚本
- android - 注释 gradle 依赖项
- swift - AVCaptureDevice.Position = AVCaptureDevice.Position.Type
- php - 如何选择要放入表单的 SQL 数据?
- html - 摆脱 Mat 对话框底部的空白
- reactjs - 我无法使用 npx create-react-app 创建 React 项目
- python - 不能在不破坏缩进的情况下粘贴 Python 代码
- c# - 测试控制台脚本中的 C# 代理问题
- javascript - 如何在javascript中将对象的元素嵌套在同一对象内?