mysql - 从 MySQL 运行 SELECT 时 JSON 长度的最大限制是多少

标签 mysql json aggregate group-concat

我有一个包含 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 也会被剪切。声明用于测试(我不明白,因为我仅限于前两行)。我已经增加了我的max_allowed_packets到 1GB,但 JSON 仍然被削减。

最佳答案

JSON 文档的限制由 MySQL 协议(protocol)的 max_allowed_pa​​cket 限制设置为大约 1GB。在尝试写入服务器之前,您可以使用 JSON_STORAGE_SIZE 函数来测试您尝试放入列中的内容是否超过该大小。

如果是,您可以将其拆分为多列 1GB 组件。

关于mysql - 从 MySQL 运行 SELECT 时 JSON 长度的最大限制是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56628061/

相关文章:

php - Mysql 查询中的 IF ELSE 条件 - PHP

mysql - 高效的 MySQL 查询查找 A 中与 B 不匹配的条目

java - 读取json数据到excel

python - 清理 MongoDB 的输入

awk - 使用 AWK 通过匹配、重命名和赋值来提取列

mysql - 根据服务器上的执行时间和负载,以下哪一个是最佳查询

MySQL多行与将值全部存储在一个字符串中

jquery - DataTables自定义下拉日期过滤器

r - 将整数向量分组为连续的游程

python - 如何在Python中按总和和平均列进行分组?