因为tidb是为分布式场景设计的,在单机部署下其架构开销远大于mariadb的本地btree引擎,所以导致简单oltp操作性能明显落后。
| 维度 | TiDB | MariaDB | 差异原因 |
|---|---|---|---|
| 架构 | 分布式、存储计算分离 | 单机 / 主从 | TiDB 无单点,可水平扩展 |
| 小数据低并发 | 一般 | 优秀 | MariaDB 路径短、 overhead 低 |
| 大数据高并发 | 优秀 | 瓶颈明显 | TiDB 分片、并行、线性扩展 |
| 写入吞吐量 | 大数据更强 | 小数据更强 | TiDB 无单点写入瓶颈 |
| 复杂 SQL/OLAP | 极强 | 弱 | TiDB 下推计算、TiFlash 列存 |
| 事务延迟 | 跨分片略高 | 单机极低 | TiDB 分布式事务协调成本 |
| 扩展能力 | 无限水平扩展 | 分库分表复杂 | TiDB 天生分布式 |
| HTAP 能力 | 原生支持 | 需 ColumnStore | TiDB 行存 + 列存同集群 |
TiDB 是分布式数据库,单机场景下天然有额外的分布式开销
MariaDB 是单机数据库,没有分布式成本
敏捷模式是企业版的吗
对的,企业版部署形态中的敏捷模式
这个是只有云上的还是可以线下单机部署
可以线下单机部署,国内云上后面会有平凯云(还没发布,大概是这个名字)
tidb优势是支持大量数据,另外olap业务比mysql一类快得多,不用tiflash也行
mark
一个是RDBMS,一个是NewSQL数据库吧
TiDB 是分布式数据库,架构复杂,单机无法发挥优势,反而有额外开销。
核心原因:TiDB不是单机数据库
MariaDB 架构
单机:
Client
↓
MariaDB
↓
InnoDB Buffer Pool
↓
Disk
特点:
单进程
本地内存
本地磁盘
无网络
无分布式事务
无Raft
所以:
一次SQL = 一次函数调用 + 一次磁盘/内存操作
延迟极低。
二、TiDB 架构
即使是“单机部署”,逻辑上仍然是 分布式数据库
Client
↓
TiDB
↓
PD
↓
TiKV
↓
Raft
↓
RocksDB
一次简单SQL流程:
SQL解析
↓
生成执行计划
↓
发RPC到TiKV
↓
Raft复制
↓
写RocksDB
↓
返回
这中间多了:
RPC网络通信
即使在一台机器
也是:
TiDB → gRPC → TiKV
不是本地函数调用。
一次SQL至少:
2~5次RPC
如果社区版也能单机就好了 ![]()
自学的话可以单机跑playground,或者免费试用企业版敏捷模式
嗯,试了一下playground感觉挺不错的
个人认为:结果完全合理、正常、符合 TiDB 架构规律,不是你环境有问题。
MariaDB:低延迟、高吞吐、适合单点小 SQL
TiDB:高并发、分布式、水平扩展、适合海量数据 / 高并发 / 复杂查询
在单机单实例场景下,TiDB 因分布式架构(TiDB+PD+TiKV)存在固有网络与协议开销,简单单行增删改查性能低于 MariaDB 属于正常现象。
TiDB 的性能优势体现在高并发、海量数据、批量写入、复杂查询、分布式扩展等场景,单机简单OLTP对比并非其优势场景。本次测试结果合理、符合架构特性。
让人想起,杀鸡焉用牛刀。数据量太少了,分布式无优势
是的,感觉并发要一定量才能体现优势