mysql - 从 MySQL 运行 SELECT 时 JSON 长度的最大限制是多少
问题描述
我有一个 8 列和 62,000 多行的表。我希望 MySQL 通过我执行的 select 语句将其表定义转换为 JSON:
SELECT
CONCAT(
'[',
GROUP_CONCAT(
JSON_OBJECT(
'json_column_name', tbl.actual_column_name,
...
)
),
']'
)
FROM
table_name tbl;
但是,一旦 JSON 到达表中的第 4 行,它就会被剪切,即使LIMIT 2
声明为测试(我不明白,因为我仅限于前 2 行)。我已经将我的容量增加到max_allowed_packets
1GB,但 JSON 仍然被削减。
解决方案
JSON 文档的限制由 MySQL 协议的 max_allowed_packet 限制设置为大约 1GB。您可以在尝试写入服务器之前使用 JSON_STORAGE_SIZE 函数来测试您尝试放入列中的内容是否超过该大小。
如果是,您可以将其拆分为多列 1GB 组件。
推荐阅读
- redirect - Wildfly 15 Undertow 永久重定向
- python - 如何生成一组带有特定下标的符号
- tomcat - Homebrew 安装后 conf/tomat-users.xml 在哪里?
- vue.js - Vue 组件中的渲染函数不渲染内容
- python - TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是“QLineEdit”
- javascript - 功能无效,因为出现 React Child 警告并且无法显示我的图像
- python-2.7 - 如何从邮递员执行python脚本?
- javascript - 单个列搜索不适用于 DataTables
- java - 从数据库序列中获取下一个值
- php - 保存 POST 数据以备后用