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

时间:2019-06-17 09:03:08

标签: 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;

但是,一旦到达表的第4行,JSON就会被剪切,即使声明LIMIT 2进行测试也是如此(我不理解,因为我限于前2行)。我已经将我的max_allowed_packets增加到了1GB,但是JSON仍然被剪切了。

1 个答案:

答案 0 :(得分:0)

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

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