写点什么

在日本为什么 mysql 都被 tidb 所替换?

  • 2024-08-02
    北京
  • 本文字数:1727 字

    阅读完需:约 6 分钟

作者: tidb 狂热爱好者原文来源:https://tidb.net/blog/c7c25034


mysql 会被 tidb 替代掉


在日本 tidb 已经是数据库排名第一的数据库。并且连续三年是排名第一的数据库。



在全世界 tidb 的增长速度是全世界第一的。


为什么我们中国人会做出这么一款被全世界认可的数据库?


他们有什么秘诀在身上?


第一 开源 只有开源才能吸引优秀的人参加。


第二开发者是真正的运维数据库的人。


第三开发者不断在追寻最新的数据库趋势


为什么 mysql 会被 tidb 替代掉呢


因为 aurora mysql 是 aws 开发的。他的目的是为云平台服务的主要目的是大幅度降低云平台运维 mysql 的成本



这是 aurora mysql 数据库的架构图。mysql 的速度受到 2 个因素影响 一个是 ebs 带宽。 另外是机器的内存。只要是大于内存的内容就会变得非常慢。因为他需要通过 ebs 带宽来载入存放在 s3 上的数据库内容 ebs 的内容最后是落入到 s3 的。


这需要不停的做两件事情一件事情是保持数据库的大小必须小于机器内存大小。第二是必须购买大容量的 ebs 带宽。


我们来看 tidb 用 ebs 的情况



而 tidb 为什么会比 mysql 快 就是因为 ebs 虽然带宽被限制 被卡脖子了。但架不住他机器多 他有 6 台机器他就能提升六倍多性能。如果性能还是不行。那么再加机器就行。这就是 tidb 横向扩展比 aurora 好的原因之一。


另外一个 mysql 他是商业付费的。他除了卖的比 ec2 贵三倍之外。他所有的操作。备份,归档,高可用,主从隔离都是需要付费的。一个 mysql 的机器价格比 tidb 贵三倍。而且为了隔离不通数据库带来的性能相互影响。必须要购买多个实例



这样的话才能物理隔绝不通业务在对数据库加压的时候会影响到其他业务。这也是 mysql 分库分表的原因。业务得分库分表。因为 mysql 无法对单个 mysql 用户进行限流。放在单个 mysql 实例上他的弊端也很多。



这样以来生产业务和大数据集的业务是可以不相互影响了。但费用翻了 9 倍。机器数量翻了 3 倍。单机的价格也比 tidb 贵三倍。



可以从图上看出来 两边数据库数量的巨大差异。


这几年经济都不好。特别是日本进入了衰退的 30 年。企业兜里都没钱。这就是 tidb 为什么能在日本市场排第一的原因。


至于为什么 tidb 一套服务器就能替代 mysql 100 套服务器。因为 tidb 还有一套资源管控

创建资源组

下面举例说明如何创建资源组。


  1. 创建 rg1 资源组,限额是每秒 500 RU,并且允许这个资源组的应用超额占用资源。

  2. 创建 rg2 资源组,RU 的回填速度是每秒 600 RU。在系统资源充足的时候,不允许这个资源组的应用超额占用资源。

  3. 创建 rg3 资源组,设置绝对优先级为 HIGH。绝对优先级目前支持 LOW|MEDIUM|HIGH,资源组的默认绝对优先级为 MEDIUM

绑定资源组

TiDB 支持如下三个级别的资源组设置:


  • 用户级别。通过 CREATE USER 或 ALTER USER 语句将用户绑定到特定的资源组。绑定后,对应的用户新创建的会话会自动绑定对应的资源组。

  • 会话级别。通过 SET RESOURCE GROUP 设置当前会话使用的资源组。

  • 语句级别。通过 RESOURCE_GROUP() Optimizer Hint 设置当前语句使用的资源组。

将用户绑定到资源组

下面的示例创建一个用户 usr1 并将其绑定到资源组 rg1。其中 rg1 为创建资源组示例中创建的资源组。


CREATE USER 'usr1'@'%' IDENTIFIED BY '123' RESOURCE GROUP rg1;
复制代码


下面示例使用 ALTER USER 将用户 usr2 绑定到资源组 rg2。其中 rg2 为创建资源组示例中创建的资源组。


ALTER USER usr2 RESOURCE GROUP rg2;
复制代码


绑定用户后,用户新建立的会话对资源的占用会受到指定用量 (RU) 的限制。如果系统负载比较高,没有多余的容量,用户 usr2 的资源消耗速度会被严格控制不超过指定用量。由于 usr1绑定的 rg1 配置了 BURSTABLE,所以 usr1 消耗速度允许超过指定用量。


如果资源组对应的请求太多导致资源组的资源不足,客户端的请求处理会发生等待。如果等待时间过长,请求会报错。


用一台超级的大水桶替代了 mysql 的小水桶。数据正常一般只占用资源的 1%-10%。剩下的都是为数据库冗余做准备的避免一个大 sql 打过来业务崩了。



这就是 tidb 省钱的原因。两个原因


1. 本身 ec2 的价格便宜三倍。


2.tidb 有资源控制本身可以把几百个 mysql 小数据库聚合起来。通过共享资源的方式把之前每个数据库 90% 的空闲能力。规避掉达到真正节约费用的目的。


发布于: 刚刚阅读数: 3
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
在日本为什么 mysql都被tidb所替换?_数据库架构设计_TiDB 社区干货传送门_InfoQ写作社区