我最近换工作,新公司技术体系比较复杂,底层存储也是五花八门,我负责的一块业务用的就是tidb。
tidb可以无缝衔接mysql,sql语法,连接池都和mysql一样,持久层同样也可以用mybatis,所以从应用层来讲,学习成本还是很低的。
先说下我这块的业务,交易流水表每天有2千万+的数据入表,账户表每天有50W+的数据入表,这样的数据量很显然传统mysql很难解决,如果分库分表工作量会很大,效果也不一定达到预期。所以考虑用tidb。
tidb是天然的分布式数据库,不需要我们考虑分库分表,应用层只用专注研发就好了。但是tidb确实费机器,官方推荐配置如下
这个配置要求,其实也挺吓人的。
看似解决了我们的问题,但是使用过程中还是很多问题:
比如经常出现慢sql,同样的sql再次执行就没问题了,后来发现是其它业务的慢sql或者导出任务导致整个集群性能降低,导致我们业务出问题。
再比如主键并不是完全自增,整体上是自增的,但是经常会出现先插入的数据主键id比后插入的数据id值要大,这也是分布式存储的特点。
总结一下吧,如果公司有钱,数据量又很大,建议使用。如果数据量一般,可以用分库分表解决还是建议mysql。