程序中执行会话变量(显示数据速度):--后是tidb默认值。
配合流式读取,作如下读取速度限制,
限制fullscan&index速度:
以下是在java中的示例,com.adata.common.tidb.read.是java包类名:
com.adata.common.tidb.read.tidb_distsql_scan_concurrency=1; --15
com.adata.common.tidb.read.tidb_init_chunk_size=8; --32
com.adata.common.tidb.read.tidb_max_chunk_size=32; --128
com.adata.common.tidb.read.tidb_executor_concurrency=1; --5
限制index读取速度:
com.adata.common.tidb.read.tidb_index_lookup_size=20; --2000
com.adata.common.tidb.read.tidb_index_serial_scan_concurrency=1; --1
流式读数限制Tiflash读取速度在当前session的代码设置:set @@tidb_max_tiflash_threads=3; --"-1"
另外限制客户端读取速度:配合连接字符串cursorfetch=true,java代码设置setfetchsize(1000);
分页是另一个控制OOM的选项,一个选择但是用户侧目前为了通用性,不方便分页。