前言
前面三章基本把 TiDB 的环境弄好了,也做了一下简单测试,有兴趣的同学可以看一下:TiDB 入门(一):TiDB 简介TiDB 入门(二):虚拟机搭建 TiDB-Ansible 部署方案TiDB 入门(三):简单测试 本来还有一些用 jmeter 压力测试的,后来测试的结果非常不好,就不想写出来了,因为自己毕竟是用虚拟机模拟的和 TiDB 官网推荐的配置差很多,如果自己写出来是有失偏颇的。
我们可以看到,TiDB 对性能要求特别高,简单看一下配置。参考:软硬件要求
开发测试环境:
组件 | CPU | 内存 | 本地存储 | 网络 | 实例数量(最低要求) |
TiDB | 8 核 | 16 GB+ | 无特殊要求 | 千兆网卡 | 1(可与 PD 同机器 |
PD | 4 核+ | 8 GB+ | SAS, 200 GB+ | 千兆网卡 | 1(可与 TiDB 同机器 |
TiKV | 8 核 | 32 GB+ | SSD, 200 GB+ | 千兆网卡 | 3 |
生产环境:
组件 | CPU | 内存 | 硬盘类型 | 网络 | 实例数量(最低要求) |
TiDB | 16 核+ | 32 GB+ | SAS | 万兆网卡(2 块最佳) | 2 |
PD | 4 核+ | 8 GB+ | SSD | 万兆网卡(2 块最佳) | 3 |
TiKV | 16 核+ | 32 GB+ | SSD | 万兆网卡(2 块最佳) | 3 |
监控 | 8 核+ | 16 GB+ | SAS | 千兆网卡 | 1 |
开发环境大概就需要两台 DELL 服务器才能满足 CPU 和内存的要求。
并且最贵的应该是 SSD,因为是需要服务器级别的 SSD 所以会非常贵。如果要高可用 raid 5 磁盘序列需要再乘以 3 倍。
而生产环境感觉需要六台 DELL 服务器才能满足,大概是开发环境的 3 倍要求。
用不到
我们之前也简单测试过,以我那台虚拟机搭建的 TiDB 只有在数据量千万级别才会和 MySQL 的性能相当,
我好好回顾了一下自己公司用的表大小,过百万的都非常少,其实 MySQL 完全够用, 现在完全没有足够的理由去说服公司去使用 TiDB。
再次翻开TiDB 正确使用姿势, 结尾的一句话好好记住:
如果整篇文章你只想记住一句话,那就是数据条数少于 5000w 的场景下通常用不到 TiDB,TiDB 是为大规模的数据场景设计的。
如果还想记住一句话,那就是单机 MySQL 能满足的场景也用不到 TiDB。
结尾
当然这次“跑路”并不是永远放弃 TiDB,等单表业务需求到了 5000w 以上的时候,我们不能用 MySQL 解决问题的时候,我相信 TiDB 仍然是值得用的,因为 MySQL 做扩展的能力没有 TiDB 好,用现在一句流行的话来说,能用钱搞定的就不是问题,性能达到瓶颈,我用机器性能去堆就可以了。
当然以后还是会持续学习 TiDB 的,希望有一天能够用上。