【TiDB 社区版主话题探讨】关于单机要不要使用 TiDB 的讨论,欢迎TiDBer 来聊聊~

什么是 TiDB 社区版主?

TiDB 社区版主:由TiDB社区中的用户、开发者、Contributor 以及合作伙伴共同组成,并拥有参与对 AskTUG 论坛管理及运营的权限。

关于话题讨论的内容来源?

版主交流群,是由一群热爱 TiDB 的版主、版主候选人及社区活跃小伙伴们组成的一个微信群,我们经常会在群里面交流 TiDB 技术问题,以便于更好地掌握 TiDB 的运维能力,更快速地帮助自己和他人处理 TiDB 问题,获得技术上的提升和成长。

本期话题

单机要不要使用 TiDB ?

2赞

来自 帅帅的交流:

今天早上想个事 tidb5系列和mysql5.7 对比 实现难度是不一样的

还是tidb更复杂一些

来自 @xfworld 的回复:

不一样,差太多了

来自@帅帅:

如果tidb做单机库 是不是应该早就超越mysql了

来自 @xfworld 的回复:

MGR 难度小于 tidb 的模型

这个估计不会去做的

场景定位狠清晰, HTAP

来自帅帅的回复:

嗯 这倒是 做单机的话没意义了

来自 billmay 的回复

但是很多人就说 单机没必要用 TiDB
比如他用 mysql 的话,他用 tidb 有一定的学习成本,
学习成本是否>使用后的收益
也不一定
但是他们如果是一个业务发展快速的公司,赶紧还挺合适的,因为用 TiDB 可能可以满足他们业务未来快速发展对应的数据库需求。
就是现在换,未来可能就不需要换了

来自 @啦啦啦啦啦 的回复

新项目之类的刚上线数据量肯定少,如果预估数据量增长很快能达到单机瓶颈,直接上tidb就行了,省的以后还得迁移

来自 @Meditator 的回复

实际上,这种创业型的公司 前期基本都是mysql之类的,不会用tidb。 1) 成本 2) 技术储备。 mysql是那种开箱即用的

大家一起来聊聊吧~

1赞

一、我能想到的单机使用tidb的理由
1、实验性(或并发不是很高的业务场景)下使用tidb
2、短期内(几个月左右)会出现对数据横向扩展, 为了扩展多个实例节点做准备而使用tidb

二、需要注意的问题
1、单机使用tidb的1tidb-server,1pd,1tikv的性能不如单机的mysql高

1赞

需要根据业务具体分析。但个人认为,TiDB不太适合单机场景,主要考虑以下几个方面:

  1. 成本

这不仅仅是TiDB的问题,绝大多数分布式系统其实都有的共性。引入分布式系统会在某些场景下提升成本,如果业务发展的较慢,或者数据较少,内存型的单机数据库较分布式数据库有其天然的优势。将宝贵的资源集中投入到承载数据库的主功能上能获得最大的回报率。

  1. 可用性

如果考虑故障域,单机数据库的维护和异常都会直接导致业务受损,因此如果使用单机的方式部署TiDB,则TiDB的故障域将限制于单机,这会使得抗风险能力显著降低。

  1. 扩展性

单机的瓶颈,比如,网卡带宽,磁盘IO,CPU、内存等,虽然目前的技术或优化方案,可以对这些有限的单机资源进行扩容,但技术改造、优化,硬件扩容等工作所带来的收益,并不是线性增长的。

从经验上来讲,如果业务发展已经到了需要考虑TiDB的场景,或多或少都是遇到以上所提及的一个或几个方面。TiDB适用数据量较大,单机负载较高,业务希望通过此以提升性能或增强容错性等目的,因此,搞清楚业务究竟需要什么,基于痛点再来评估单机使用TiDB才能得到符合业务实际发展需要的答案。

1赞

单机最多只能拿来测试下SQL的兼容性,或者作为开发者的本地测试库。

1赞

生产环境下,还是不要单机跑TiDB了~不是不能跑,而是不要跑~

1赞

前期数据量小的话可以先用官网推荐的生产环境最小拓扑,后面在扩节点。单机还是不要搞了,性能和安全性都没保障。

1赞

单机,单机测试玩吧,别拿生产开玩笑

2赞

如果只有一台物理机或者物理机做个虚拟化,还是玩玩mysql的好,在这个场景下不具有高可用能力,无论mysql还是tidb都不建议作为生产环境。
作为生产环境,考虑冷热备等可用性问题,考虑扩缩容,打散热读写等等运维问题,考虑tidb,在这方面tidb是对用户友好的。
当前大环境下,tidb和mysql的开箱即用能力差距我觉得在缩小,主要是对硬件的依赖,有个ssd环境,也很容易上手。

1赞

单机用来学习可以了,生产mysql都不单机

2赞

好比手枪跟加特林,-个敌人就手枪,高并发采用采用加特林

1赞

单机就用做学习吧

2赞

个人觉得是要的,不过得区分环境:
1.CI/测试/灰度 环境可以使用单机,用tiup将集群部署在一个单机,做好每天备份,安全稳定可以弱一点,成本方面考虑多一点。

2.生成环境不要使用单机,首要保障完全稳定。

单机使用就有点为使用TiDB而使用TiDB了,毕竟设计之初的目标就是分布式。