TiDB和Mariadb的性能比较

因为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 是分布式数据库,架构复杂,单机无法发挥优势,反而有额外开销。

2 个赞

核心原因:TiDB不是单机数据库
MariaDB 架构

单机:

Client

MariaDB

InnoDB Buffer Pool

Disk

特点:

单进程
本地内存
本地磁盘
无网络
无分布式事务
无Raft

所以:

一次SQL = 一次函数调用 + 一次磁盘/内存操作

延迟极低。

二、TiDB 架构

即使是“单机部署”,逻辑上仍然是 分布式数据库

Client

TiDB

PD

TiKV

Raft

RocksDB

一次简单SQL流程:

SQL解析

生成执行计划

发RPC到TiKV

Raft复制

写RocksDB

返回

这中间多了:

:one: RPC网络通信

即使在一台机器

也是:

TiDB → gRPC → TiKV

不是本地函数调用。

一次SQL至少:

2~5次RPC

2 个赞

如果社区版也能单机就好了 :grinning:

自学的话可以单机跑playground,或者免费试用企业版敏捷模式

嗯,试了一下playground感觉挺不错的

个人认为:结果完全合理、正常、符合 TiDB 架构规律,不是你环境有问题。

MariaDB:低延迟、高吞吐、适合单点小 SQL
TiDB:高并发、分布式、水平扩展、适合海量数据 / 高并发 / 复杂查询

在单机单实例场景下,TiDB 因分布式架构(TiDB+PD+TiKV)存在固有网络与协议开销,简单单行增删改查性能低于 MariaDB 属于正常现象。
TiDB 的性能优势体现在高并发、海量数据、批量写入、复杂查询、分布式扩展等场景,单机简单OLTP对比并非其优势场景。本次测试结果合理、符合架构特性。

让人想起,杀鸡焉用牛刀。数据量太少了,分布式无优势

是的,感觉并发要一定量才能体现优势