# TiDB 的优势

![`smart`](ReasonsForChoosingTiDBCloud_zh_002_20230407.png)

----------------------------------------------------------------------------------------------------------------------------
针对关键工作负载的可扩展性：弹性和健壮的 “MySQL” 助力于业务的迅猛增长

水平扩展性：在组件级别实现无缝扩容与缩容
- 在每个子组件层面（包括计算层、存储层和元数据层）TiDB 都能实现在不停机的情况下进行扩容和缩容。这些层面之间是解耦的，可以根据需求进行扩缩容而不会中断任何线上服务。

零停机时间：消除计划内和计划外的停机时间
- TiDB 旨在消除计划内与计划外的停机时间。 它支持在每个组件级别上的在线扩容和缩容，以及在线滚动升级和 online DDL。 TiProxy 用于确保数据库客户端与 TiDB 服务器之间连接的持久性。 它的内置自我修复功能可以应用在计算、存储和元数据层面上，在软件故障、硬件故障或数据中心停机时，确保业务的连续性。 在此基础上，用户可以在 TiDB Cloud 上体验这些优点，而无需进行额外的设置。

强一致性：支持分布式环境中的大规模 ACID 事务
- 与传统的关系型数据库类似，TiDB 提供可靠的完整 ACID 事务支持，并具有强一致性。

MySQL 兼容性：可以轻松从 MySQL 生态系统进行迁移
- TiDB 兼容 MySQL 5.7，这意味着在大多数情况下，您可以将现有的应用程序迁移到 TiDB，而无需修改应用程序代码。已经在许多生产环境中实践证明，将成百甚至上千个与 MySQL 兼容的数据库合并为单个 TiDB 集群是可行的。


内置 HTAP 功能：简化操作和分析数据服务

双引擎（行+列）：从冷、热业务数据中赋能实时洞察
- TiDB 配备了基于行、列的存储引擎，使其可以同时轻松处理 OLTP 和分析工作负载。通过单个标准 SQL 接口，业务分析师可以轻松地从在线操作和冷数据中获取信息。

（大数据上的 SQL：SQL 的复兴以提高数据敏捷性）使用 SQL 应对大数据，提高数据的敏捷性
- TiDB 能够高效地储存和检索 PB 级的海量数据。它可以被归类为大数据解决方案，尤其在支持 JSON 的情况下变得更加高效。通过实现标准 SQL 并增加对 JSON 函数的支持，TiDB 简化了大部分大数据问题的处理流程，消除了引入大数据生态系统中专用工具的需要。因此，在 TiDB 的协助下，SQL 再次占据了主导地位。

`One Size Fits All, Again`：解决 `No One Size Fits All` 的复杂性，减少重新投资。
- 在数据库领域，多年来已普遍的认为没有广泛适用的解决方案，因为不同的应用有其独特的数据库要求。有些需要高可用和可扩展，而其他则需要高性能和低延迟。此外，不同的数据库技术和配置具有不同的优点和限制。因此，了解您的应用程序的具体需求至关重要，并选择适当数据库技术和配置，以最佳方案满足需求。然而，这通常会导致管理的复杂性显著增加，在公有云环境中，由于再投资问题，管理的复杂性可能会进一步扩大。
- TiDB 核心是包含着一个无状态 SQL 层的 NoSQL 数据库，因此获得 NoSQL 和 RDBMS 的优势。它被设计来处理结合这两个技术所涉及的复杂性，并遵循“没有一种方法适合所有人”的原则。然而，在更高的操作层面，TiDB 作为一个统一的数据库呈现单一的管理接口，这使得用户能够同时受益于上述两种优点。除非您的应用程序需要极低的延迟，否则（大多数情况下）TiDB 是一个综合解决方案。

Zero-ETL：降低维护成本
- 如前所述，TiDB 提供了行存储引擎和列存储引擎。列存储引擎能够自动从行存储引擎中复制必要的数据用于分析工作负载，无需额外的 ETL 任务。
