網站首頁 編程語言 正文
一、現象
開發反應一張表的查詢時間很長,表的行數也不多,不應該有這種現象
二、排查
1.查看表的基本信息
# 查看表結構
show create table table_name;
# 查看表行數
select count(1) from table_name;
# 查看表健康度
show stats_healthy where table_name = "table_name"
# 查看查詢的執行計劃
explain analyze sql
通過上面的查詢知道表的行數只有兩千多行,沒有索引,正常來說是應該為毫秒級的查詢,但是執行計劃中可以看到rpc_num 1, rpc_time:52s
rpc_num: 向 TiKV 發送 Cop 類型的 RPC 請求總數量
rpc_time: 向 TiKV 發送 Cop 類型的 RPC 請求時間
2.探索cop慢原因
2.1 加索引分析
同樣的查詢加上索引就快了,但是根據經驗判斷,2000多行的表有無索引的情況是一致的,除非優化器認為他真實的數據遠大于2000行,所以猜測是我們的版本數太多試造成cop慢的主要原因
2.2 查看gc設置
# 通過這個查看gc,發現tikv_gc_last_run_time是6月28號,而現在已經是7月11號了,沒有gc是造成版本太多的主要原因
select VARIABLE_NAME, VARIABLE_VALUE from mysql.tidb where VARIABLE_NAME like "tikv_gc%";
# 另外可以看到tikv_gc_life_time為10m0
2.3 解決gc問題
通過上面的查詢也可以看到tikv_gc_life_time為10m0,這個是個不合理的gc值,所以會造成不能gc,合理的值為10m或者10m0s,這塊在v5版本中用set的方式就可以避免了,4版本中還是需要用下面的方式進行
# tidb中的錯誤日志
["[gc worker] leader tick"] [error="time: missing unit in duration 10m0"]
# 如下修改后gc后,查詢變得正常
update mysql.tidb set VARIABLE_VALUE="10m0s" where VARIABLE_NAME="tikv_gc_life_time";
gc相關:官網鏈接
原文鏈接:https://blog.csdn.net/line_on_database/article/details/125722312
相關推薦
- 2023-01-02 C++?命名空間?using聲明使用示例詳解_C 語言
- 2022-05-06 Matplotlib安裝與配置
- 2022-06-01 詳解Python中sorted()和sort()的使用與區別_python
- 2022-01-13 macOS 升級后 nvm 安裝的 node 和 npm 出錯
- 2021-12-07 Linux系統的修復模式(單用戶模式)_Linux
- 2022-12-06 Python如何查看并打印matplotlib中所有的colormap(cmap)類型_python
- 2022-05-22 Nginx反向代理與負載均衡概念理解及模塊使用_nginx
- 2022-11-30 Python利用裝飾器click處理解析命令行參數_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支