现在我们生产环境使用的时tidb3.0.11,因为有高并发大数据的select查询,发现某些count语句的Coprocessor 请求数量非常大。
1、Coprocessor 请求量增大是否是引发KV-cpu使用增多的原因。
2、把Coprocessor 请求量较大的sql语句在3.0.11版本、4.0.0版本库运行多次查看结果如下。根据如下截图可以看出4.0.0版本做了优化,第一次Coprocessor 请求数量多之后就少了。想问下具体优化的哪方面的,是否可以帮忙解惑。
希望老师百忙中解答一下,感谢!
tidb3.0.11截图
tidb4.0.0截图
使用的查询语句
SELECT
DATE_FORMAT( Time, '%Y/%m/%d-%H:%i' ) AS '发生日期',
CONCAT( Query_time, '(秒)' ) AS '执行这个语句花费的时间',
DB AS 'DB',
Request_count AS 'Cop请求数量',
Process_keys AS 'Cop处理的key的数量',
`Query` AS 'SQL语句',
CONCAT( Process_time, '(秒)' ) AS 'SQL在TiKV处理时间和',
CONCAT( Wait_time, '(秒)' ) AS 'SQL在TiKV等待时间和',
Mem_max / 1024 / 1024 AS 'sql使用的内存mb',
CONCAT( `User`, '@', `HOST` ) AS '谁执行的',
CONCAT( Backoff_time, '(秒)' ) AS '语句遇到错误,在重试前等待的时间',
( CASE succ WHEN '1' THEN '成功' ELSE '失败' END ) AS '是否执行成功',
Digest as '指纹'
FROM
information_schema.`slow_query`
WHERE
`is_internal` = FALSE -- 是否为 tidb 内部的 sql 语句
AND DB != ''
AND time > DATE_SUB( NOW( ), INTERVAL 2 HOUR ) -- 查询最近一小时的
ORDER BY
Request_count desc
LIMIT 200;