目录
1. Placement Rules in SQL
2. 热点小表缓存
3. 内存悲观锁
4. Top SQL
5.TiDB Enterprise Manager(TiEM)
6. 小结
1. Placement Rules in SQL
Placement Rules in SQL 之前
- 跨地域部署的集群,无法本地访问
- 无法根据业务隔离资源
- 难以按照业务等级配置资源和副本数
Placement Rules in SQL 之后
- 跨地域部署的集群,支持本地访问
- 根据业务隔离资源
- 按照业务等级配置资源和副本数
Placement Rules in SQL 的使用 -步骤 1
- 设计业务拓扑,为不同的 TiKV 实例设置标签
Placement Rulesin SQL的使用-步骤 2
- 创建 PLACEMENT POLICY
Placement Rules in SQL的使用-步骤 3
- 设定数据对象的 PLACEMENT POLICY
Placement Rules in SQL 的应用
- 精细化数据放置,控制本地访问与跨区域访问
- 指定副本数,提高重要业务的可用性和数据可靠性
- 将业务按照等级、资源需求或者数据生命周期进行隔离
- 业务数据整合,降低运维成本与复杂度
2. 热点小表缓存
- 只读表或者修改不频繁的表
- 表的访问很频繁
- 表大小64M以下
热点小表缓存-原理
- 命令:ALTER TABLE table_name CACHE;开启表缓存
- tidb_table_cache_lease用于设置缓存租约,默认为5s,租约内只能读不能写。租约到期,内存中的版本过期,此时可以在TiKV中直接写,读性能会下降。
- 不管租约内还是租约外,都不会阻塞读
- 缓存表不支持DDL,需要先关闭缓存表。
3. 内存悲观锁
乐观锁:在commit的时候,才做prewrite,加锁,在此之前其他事务不知道这个数据上有锁
悲观锁:在内存中修改数据的同时,把锁写入lock列簇中,让其他事务能看到锁信息,网络和磁盘IO都有负载
内存悲观锁:在内存中修改数据的同时,只把锁信息写到Leader节点的TiKV缓存中,不写到磁盘中,并且不复制给其他节点,此时Leader节点宕机会造成锁丢失,事务回滚
内存悲观锁-使用
- 在线开启内存悲观锁
>set config tikv pessimistic-txn.pipelined='true',
>set config tikv pessimistic-txn.in-memory='true';
内存悲观锁-应用
- 减少事务的延时
- 降低磁盘和网络带宽
- 降低 TiKV 的 CPU 消耗
- 锁丢失问题
4. Top SQL
TiDB Dashboard集成了Top SQL
根据CPU负载排序
- 指定 TiDB 及 TiKV 实例
- 正在执行的 SQL 语句
- CPU 开销最多的 Top5类SQL
- 每秒请求数、平均延迟等信息
- 执行计划显示
Top SQL的使用
- 选择需要观察负载的具体 TiDB Server 或 TiKV 实例(时间范围、刷新时间)
- 查看某语句的执行情况:Call/sec(平均每秒请求数)、Scan Indexes/sec(平均每秒扫描索引数)等
Top SQL的作用
- 可视化地展示 CPU 开销最多的 Top5 类 SQL 语句
- 支持指定 TiDB Server 及 TiKV 实例进行查询
- 支持统计所有正在执行的 SQL 语句
- 支持每秒请求数、平均延迟、查询计划等详细执行信息
5.TiDB Enterprise Manager(TiEM)
企业中 TiDB 集群管理的问题
- 数量增长
- 集群数量
- 节点数量
- 组件数量
- 工具数量
- 复杂度增长
- 配置参数复杂度
- 命令行复杂度
- 管理接口复杂
企业中 TiDB 集群管理的任务
- 部署集群
- 升级集群
- 参数管理
- 组件管理
- 备份恢复与高可用管理
- 集群监控与告警
- 集群日志收集
- 审计与安全
TiDB Enterprise Manager(TiEM)功能
- 一键部署集群 &多套集群一站式管理
- 集群原地升级
- 参数管理
- 克隆集群 &主备集群切换
TiEM简化、流程化集群管理中的任务,降低出错的几率
6. 小结
- Placement Rules in SQL
- 小表缓存
- 内存悲观锁
- Top SQL
- TiDB Enterprise Manager (TiEM)
来自TiDB官方资料