水平可伸缩性的MySQL作为一个Percona技术客户经理,我与我们最大的许多客户开始工作。雷竞技下载官网而垂直行业不同,一个主要核心挑战通常是相同的——我怎么处理这些数据?处理大规模数据集在MySQL中并不是一个新的挑战,但最好的方法还是不是微不足道的。每个应用程序显然是不同的,但我想讨论一些主要的最佳实践在处理数据的湖泊。

保持小MySQL实例

首先,建筑设计需要保持每个MySQL实例相对较小。一个很常见的问题,我从团队新的使用MySQL是:“MySQL实例规模最大的支持是什么?”。我的答案可以追溯到我的时间在咨询:“看情况”。可以我的MySQL实例支持20 tb数据集?也许,但这取决于工作负载模式。我应该将20 tb的数据存储在一个MySQL实例?在大多数情况下,绝对不是。

MySQL可以存储大量的数据。但rdbms是为了存储、写和读数据。当大的数据增长,经常读性能开始受到影响。但是如果我的工作数据集还适合在RAM中吗?这通常是关键的考虑分级实例时。在这种情况下,积极的读/写操作可能会很快,但当你需要备份或改变一个表吗?你正在读(写)20 tb永远是有界的I / O。

上浆的神奇的数字是什么?许多大型商店尽量保持个体实例大小2-3TB马克。这导致一些主要的优点:

  • 可预见的操作时间(备份、修改等)
  • 允许优化和标准化的硬件
  • 加载数据中潜在的并行性

如果我知道我永远不会超过几个字节,我完全可以优化系统数据的大小。结果是可预测和可重复的操作行为。现在,当一个备份是“慢”,它必然是由于硬件和不是局外人实例的两倍大小。这是一个巨大的胜利在管理运营团队整体的基础设施。除了备份,您需要考虑恢复时间。大量的备份将缓慢恢复,RTO产生负面影响。

更少的数据存储

现在大的负面影响,单独的实例,让我们看看我们如何降低大小。虽然看似明显,保持数据规模较小的最好方法是减少存储数据。有一些方法方法:

  • 优化数据类型
    • 如果大于所需的数据类型,它导致多余的磁盘占用(即使用bigint int就足够了)
  • 评审指标膨胀
  • 清除旧数据
    • 在可能的情况下,删除记录没有被阅读
    • 这样的工具pt-archiver真正能帮助在这个过程吗

这些技巧可以帮助你推迟需要更高级的技术。然而,在某些情况下(由于合规,有限的灵活性等),上述选项不可能的。在其他情况下,你可能已经做,仍按大小限制。

水平切分

什么是另一种方式来处理大规模数据集在MySQL中?当所有其他选项都筋疲力尽,您需要查看数据水平和传播它拆分到多个同样大小的实例。不幸的是,这是说起来容易做起来难。虽然有一些工具和选择MySQL(比如维塔斯),通常最好的和最灵活的方法是构建这个分片逻辑直接到您的应用程序。分片可以做静态(例如关键模量)或多个动态(通过字典查找)或混合方法的两个:

MySQL的水平可伸缩性的心态

分片的考虑

当你最终不得不咬紧牙关,水平分割数据,肯定有一些事情要记住。首先,选择正确的切分关键势在必行。错误的关键,碎片不会平衡,你就会得到董事会规模。这就变成了同样的问题,碎片可以增长太大。

一旦你有了正确的键,您需要理解,不同的工作负载将被分片的影响不同。跨越碎片数据时,个人查询通常是最容易实现。你把钥匙,地图碎片,并获取结果。然而,如果工作负载需要聚合访问(认为报道,总数等),现在你正在处理组合多个碎片。这是一个初级和重大挑战时看水平切分。一样在大多数架构,业务需求和工作负载将决定设计。

如果你的团队在一个数据集,爆炸在Percona专业服务团队雷竞技下载官网可以帮助你设计一个更加灵活和可扩展的解决方案。都是独一无二的,我们的团队可以使用特定的用例和业务需求来引导你走向正确的方向。最大的要记住:请不要继续增加硬盘空间实例,同时期待它的规模。适当的设计和水平分片的关键因素随着您的数据!查看本系列的下一篇文章更多的理论和考虑切分,还有一个轻量级ProxySQL示例实现。

雷竞技下载官网MySQL Percona分布是最完整的,稳定的,可伸缩的,和安全,开源MySQL解决方案,提供企业级的数据库环境最关键业务应用程序…和它的免费使用!

raybetapp2下载

订阅
通知的
客人

0评论
内联反馈
查看所有评论