› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
phony2r
V2EX  ›  MySQL

MySQL group_concat 为什么会有长度限制?

  •  
  •   phony2r · Mar 10, 2021 · 1933 views
    This topic created in 2032 days ago, the information mentioned may be changed or developed.

    线上有个 bug, 排查后发现是因为 group_concat 会截取一部分文本, 网上查了下发现 MySQL group_concat 默认长度是 1024, 需要主动修改才能支持更大的长度, 比如修改 mysqld 的配置文件

    [mysqld]
    group_concat_max_len = 65535
    

    但是没理解 MySQL 为什么要添加长度限制?

    2 replies  •  2021-03-15 11:07:22 +08:00
    ch2
        1
    ch2  
       Mar 10, 2021
    功能:将 group by 产生的同一个分组中的值连接起来,返回一个字符串结果
    group by 是一个非常消耗性能的操作,不止 mysql,mongo 也有一大堆限制,你分组里的结果如果太多了分分钟内存就溢出了,所以默认有个限制
    zhangysh1995
        2
    zhangysh1995  
       Mar 15, 2021
    假设一组里面的一个数据是 1 字节,那么 65535 * 1B =0.065535 MB, 如果数据行数 * 100 (六百万也不多吧), 那就是 65+MB 。然而实际数据不可能这么小,同时还有多个组,内存可能就爆了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2271 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:20 · PVG 12:20 · LAX 21:20 · JFK 00:20
    ♥ Do have faith in what you're doing.