---
title: 'TiDB x 小米 | TiDB 在小米的落地及云原生探索'
date: '2023-06-30T01:42:44+08:00'
status: publish
permalink: /case/user-case-xiaomi-2021
author: xuliwen
excerpt: 'TiDB 结合了传统的 RDBMS 和 NoSQL 的最佳特性，兼容 MySQL 协议，支持无限的水平扩展，具备强一致性和高可用性，良好地解决了由于数据量快速增长给小米带来的业务瓶颈。'
type: case
id: 1242
thumbnail: https://img1.pingcap.com/files/2023/02/小米.png
industry:
    - 零售与电商
scene:
    - '实时 HTAP'
company_desc:
    - '小米集团是一家以智能手机、智能硬件和 loT 平台为核心的消费电子及智能制造公司。2021 年全球市场占有率达到全球第二位。2020 年小米智能手机全球出货量为 1.46 亿台。截止 2021 年 3 月 31日， AloT 平台已连接的 loT 设备（不包括智能手机及笔记本电脑）数量达到约 3.75 亿台。'
white_paper_link:
    - ''
banner_image:
    - ''
---
业务挑战
----

- 容量瓶颈。经过十年的发展，小米很多业务线单机的存储容量都已经接近饱和。而如果对业务逻辑没有很深的了解，传统的分库分表解决方案，成本是非常高的。
- 高可用挑战。在 MySQL 主从架构下，小米尝试过使用很多方法实现高可用，比如通过 LB + Orchestrator + 中间件的方案来解决，但如果午夜主库挂了，可能仍然无法及时解决。
- 高写入挑战。传统的 MySQL 主从架构，只能写到主库上，很容易达到瓶颈，这会带来非常强的主从延迟，进而带来一致性问题，这对很多业务来说是一个灾难。
- 历史包袱。小米十年发展以来，内部有各种各样的解决方案去适应业务规模的增长，但都各有优劣。例如，小米曾开源过一个支持分库分表的中间件 Gaea。除此之外，内部还有其他的中间件，方案非常多，但都分散在各个业务线。一旦相关人员有变动，就会变得难以维护。

解决方案
----

经过对 TiDB 的了解与测试，2020 年 9 月 ，小米云平台部门的数据库与存储团队正式启动了 TiDB 项目，并在2021 年 1 月，完成了包括部署、监控、告警、工单等基础能力的建设，构建了一个类似于 DBaaS 的平台，在小米内部的私有云正式上线，对接各项业务提供数据服务。

TiDB 在小米内部的发展非常迅速，仅仅到 2021年 7 月份，TiDB 在小米已经部署了 20 多个集群，TiDB 节点达到 80+，TiKV 节点也达到了 100+，业务场景覆盖电商、供应链、大数据等等。

很多业务在看到 TiDB 较强的可扩展性后，在遇到存储瓶颈时，都很愿意迁移接入 TiDB 。小米也充分利用后发优势，直接引入了大量生态产品，如 BR、TiCDC、TiUP、DM 等等，极大地减小了运维成本，促进了产品的快速发展。

在使用 TiDB 的过程中，小米团队并没有仅仅把自己当做产品的用户，还向 TiDB 的多个生态产品提了许多 patch，成为 Dumpling、BR、TiCDC、TiUP 等产品的 contributor，以及 TiDB 的 active contributor，为 TiDB 生态提供持续贡献，反哺社区，完善生态。

未来，小米还将和 TiDB 社区进行深度合作，共同推进混合多云战略，推进核心业务从 MySQL 向 TiDB 迁移。

业务收益
----

- 通过引入 TiDB ，小米轻松解决了业务线单机存储容量问题；
- 作为一个分布式数据库，TiDB 很好地解决了多点写入的问题；
- TiDB 社区支持非常友好，文档非常完善，这使得小米的接入非常快速；
- TiDB 拥有完善的数据库周边生态，大大降低了小米运维的成本；
- TiDB 在跨机房、多机房容灾等方面表现优秀，利于建设异地容灾业务架构；
- 通过 TiDB 新推出的透明数据加密特性（Transparent Data Encryption，简称 TDE），小米在风控隐私集群中极大简化了业务逻辑。