TIDB分布式数据库

📅 发布时间:2026/7/8 21:27:25 👁️ 浏览次数:
TIDB分布式数据库
概念TiDB 是一款开源的分布式 NewSQL 数据库兼容 MySQL 生态支持水平扩展、金融级高可用及实时 HTAP混合事务分析处理。与 OldSQL如 MySQL相比它解决了单机容量和性能瓶颈与 NoSQL 相比提供完整的 ACID 事务和 SQL 接口。核心特性MySQL 兼容支持 MySQL 5.7 协议及常用功能迁移成本低。水平扩缩容存储与计算分离支持在线弹性扩缩容。金融级高可用多副本 Multi-Raft 协议保障数据强一致性。实时 HTAP通过 TiKV行存和 TiFlash列存支持 OLTP 与 OLAP。云原生支持 Kubernetes 部署TiDB Operator。核心架构TiDB Server无状态 SQL 计算层处理 SQL 解析、优化及执行计划生成。TiKV Server分布式行式存储引擎基于 Raft 协议实现数据强一致性与高可用。PD Server元数据管理与调度中枢负责 Region 调度及全局 ID 分配。TiFlash Server列式存储引擎通过 Multi-Raft Learner 实时同步 TiKV 数据支持实时分析。主要限制功能限制不支持存储过程、自定义函数和触发器。资源开销分布式架构引入额外管理开销如多副本同步。适用规模数据量低于千万级时单机 MySQL 可能更经济。其他限制默认单行大小 ≤6 MB可调至 120 MB用户名最长 32 字符。应用场景金融核心系统需 RPO0 和 RTO≤30 秒的高可用场景。高并发 OLTP替代分库分表实现透明水平扩展。实时 HTAP同一份数据同时支持交易与分析T0。数据汇聚与报表简化传统 Hadoop 架构直接通过 SQL 生成报表。Java 交互连接与驱动驱动使用mysql-connector-java。连接字符串配置多个 TiDB 节点地址以实现负载均衡。Stringurljdbc:mysql://tidb-host1:4000,tidb-host2:4000/testdb?loadBalanceAutoCommitStatementThreshold5;连接池推荐 HikariCP配置与 MySQL 一致。事务处理乐观事务默认模式提交时检测冲突需处理重试逻辑。intmaxRetries3;for(inti0;imaxRetries;i){try{updateAccountBalance(connection,accountId,amount);connection.commit();break;}catch(MySQLTransactionRollbackExceptione){if(imaxRetries-1)throwe;Thread.sleep(50);}}悲观事务通过SET tidb_txn_mode pessimistic启用。主键与自增 ID显式主键建议使用单调递增主键避免写热点。自增 ID保证唯一性但不连续可选AUTO_RANDOM或雪花算法。SQL 优化避免大事务单事务数据量过大可能触发限制默认 100MB。索引优化通过EXPLAIN分析执行计划。热点处理写入热点使用SHARD_ROW_ID_BITS或AUTO_RANDOM分散写入。CREATETABLEevents(contentTEXT)SHARD_ROW_ID_BITS4;-- 16 分片读取热点优化查询频率或分片键设计。生态与监控工具链支持 TiUP部署工具、TiDB Dashboard监控界面。监控指标通过 Prometheus Grafana 跟踪集群状态如 Region 分布、事务延迟。