我们在用tiflash的时候,发现如果语句查询的数据量很大,就会内存占用很大,且没有很好的落盘功能,不知道这块ob 这块有没有加强,当语句内存超过一定程度就落盘
OB 支持算子落盘溢写,参数enable_sql_operator_dump默认打开,hash join、group by、sort 内存高时会把中间结果写到磁盘,避免 OOM。
和 TiFlash 不一样:不能手动设置单条 SQL 内存阈值来触发落盘,是算子内部内存吃满才自动落盘。
可以配置temporary_file_max_disk_size限制临时文件总大小,防止打满磁盘。
落盘后查询性能会下降;无单查询内存配额,这是短板。
排查看视图__all_virtual_dtl_interm_result_monitor查看落盘数据量。
落盘后查询性能会下降;无单查询内存配额,这是短板。
是的啊,在tidb 上 连tiflash 用了多少内存都看不到
OceanBase 数据库的 AP 功能确实存在落盘机制。当 SQL 使用的内存超过限制时,会触发内存落盘。这通过租户级变量 ob_sql_work_area_percentage 来控制,该变量表示 SQL 模块可以使用的最大内存量占租户总内存的比例。如果在读多写少场景下 SQL 模块内存受限导致数据落盘,您可以适当增大 ob_sql_work_area_percentage 的值来缓解内存占用问题。但需要注意的是,落盘后查询性能可能会有所下降。
更多信息请查看: