云数据库 GAUSSDB(FOR MYSQL)-执行select order by查询报Out of sort memory:原因分析
原因分析
查看表结构发现存在JSON格式的大字段
create table `t1` ( `id` bigint not null, `num` int not null, `rank` int not null, `j1` json default null, `j2` json default null, `j3` json default null, primary key (`id`, `num`)) engine = InnoDB default charset = utf8
社区全字段排序特性导致该问题,对于BLOB/TEXT/JSON/GEOMETRY等大字段类型,虽然理论上最大可以达到4GB,但是在实际应用中基本不会达到这个数量级,如果只根据row IDs去做排序而不是完整的行,会导致需要二次回表去取数据,在这种场景下瓶颈就在回表上。因此如果开启了全字段排序,当sort_buffer_size比较小而行数据比较大,就会导致超过阈值报错。
- GaussDB内存_云数据库GaussDB内存_高斯数据库内存-华为云
- GaussDB查询表结构_通配符字段查询表_高斯数据库查询表结构-华为云
- GaussDB免费数据库_GaussDB哪家好_免费高斯数据库
- GaussDB分析_GaussDB数据库分析_高斯数据库分析_华为云
- TaurusDB并行查询_TaurusDB内核_TaurusDB并行执行_PQ
- GaussDB监控_GaussDB数据库监控_高斯数据库监控_华为云
- 如何连接测试服务器数据库_mysql数据库磁盘满了怎么办
- RDS for MySQL限流_华为云数据库RDS_自治限流_SQL限流
- GaussDB行转列_数据中台架构pdf_高斯数据库行转列_华为云
- 云数据库Gaussdb数据库索引_华为gaussdb__gaussdb 数据库