`
骑猪逛街666
  • 浏览: 135560 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

如何快速扩展MySQL数据量?

阅读更多
阅读原文请点击:http://click.aliyun.com/m/22991/
摘要: 在一些评估里,我们(Pinterest)的发展比先前任何初创公司都要快。大约在2011年9月份,我们的基础设施都超过负载。一些NoSQL技术导致灾难性的后果,同时大量用于读的MySQL从属服务器,产生了大量令人恼火的Bug,特别是缓存。

在一些评估里,我们(Pinterest)的发展比先前任何初创公司都要快。大约在2011年9月份,我们的基础设施都超过负载。一些NoSQL技术导致灾难性的后果,同时大量用于读的MySQL从属服务器,产生了大量令人恼火的Bug,特别是缓存。我们重新架构了整个存储模型。令人欣喜的是,新架构还是比较有效果的,基本满足了我们的要求。



  1 业务需求


系统总体要非常稳定,便于操作,便于拓展。我们想让数据库能从开始小存储量,能随着业务发展而拓展;

Pin友生成的内容必须能永久访问;

(支持)请求的N个Pin在板块中以确定的顺序(像按照创建时间倒序,或是按照用户特定的排序)(显示)。对于喜欢的Pin友,发Pin的Pin友列表等,也必须以特定的顺序;

为了简单,更新一般而言要保证最好的性能,为了获取最终一致性,需要额外的东西,如分布式事物日志。这是一个有趣(但不太容易)的事情!



  2 设计原理与笔记


由于我们想要的这些数据是横跨多个数据库的,我们不能使用数据库的join,外键或者收集所有数据的索引,不过他们可以被用于不能横跨数据库的子查询。

我们也需要支持负载均衡我们的数据。我们厌恶来回移动数据,尤其是逐项移动,因为容易出错,也容易让系统变得不必要的复杂。如果我们必须移动数据,最好移动一整个虚拟节点到物理节点。



为了实现快速成型,我们需要一个简单可用的解决方案,并且在我们的分布式数据平台上,节点要非常稳定。



所有的数据都需要被备份到从节点进行高可用,并为 MapReduce 转存到 S3。 在生产中,我们只与主节点交互。在生产中,你不能在从节点上读/写。从节点是滞后的,它会引发奇怪的bug。如果你共享数据,一般来说在生产中与从节点交互是没有优势的。



最终,我们需要一个好的方式来生成一个统一且唯一的ID(UUID)分配给所有我们的对象。



  3 我们如何切分数据


无论我们如何构建系统,都需要满足我们的业务要求并保证系统稳定,具有高性能,易于维护。换言之,我们需要系统不糟糕 ,因此我们选择成熟的技术-MySQL作为我们构建系统的基础。我们有意避免使用具有自动扩展功能的新技术,例如MongoDB,Cassandra 和Membase等,因为他们还不够成熟(并且他们会以无法预知的方式崩溃)。



悄悄话:我依旧建议初创公司避免使用花哨的新事物——尝试使用完全能够正常运行的MySQL。相信我,我有很多错误的实践(创伤)来证明这一点。
阅读原文请点击:http://click.aliyun.com/m/22991/
分享到:
评论

相关推荐

    大数据量测试数据(MySQL)

    当你导入这些文件时,它们会将数据加载到相应的表中,进一步增加数据量,可能用于扩展测试场景或提供更复杂的数据分布。 `load_titles.dump` 和 `load_employees.dump` 可能分别用于存储员工的职位信息和员工数据。...

    海量数据的MySQL数据集

    标题提到的“海量数据的MySQL数据集”是一个专门针对大规模数据处理的资源,它包含10亿条数据,这意味着它是一个用于测试、学习或分析大数据场景的理想工具。 首先,让我们深入了解一下MySQL。MySQL支持SQL(结构化...

    Gbase是什么?与主流数据库如oracle、mysql的区别?性能如何?

    它支持水平扩展,能够高效处理大规模数据量,非常适合互联网、金融、电商等领域中的高频读写业务场景。此外,GBase还提供了在线扩容、备份恢复、自动容错等高级功能,大大提高了数据服务的稳定性和效率。 GBase系列...

    1,MySQL 可扩展设计

    随着互联网应用的不断增长和数据量的爆炸性增加,数据库系统面临着性能和容量上的压力。为了应对这些挑战,数据库的可扩展性变得至关重要。可扩展性指的是系统通过增加硬件资源来提升性能和容量的能力,这一点在...

    MySQL数据复制部署与维护

    MySQL数据复制是数据库管理员必须掌握的关键技术之一,它可以在多个服务器之间同步数据,保证数据的一致性,提高数据的安全性,同时能够分担负载,提高系统的性能。接下来,我们将详细探讨MySQL数据复制的部署与维护...

    mysql 测试数据集,单表200万条数据

    - 分区:对于大数据量的表,可采用分区技术,将数据分散到多个物理存储上,加快查询速度。 - 编码:选择合适的字符编码,如UTF-8或UTF-8MB4,平衡存储空间和字符支持。 4. SQL语句: - SELECT查询:学习如何编写...

    关于MySQL数据迁移--data目录直接替换注意事项的详解

    在传统的MySQL数据迁移中,通常使用`mysqldump`工具进行数据库的备份和恢复,但当数据量巨大时,这种方法可能会耗费大量时间。为了提高效率,可以尝试直接替换`data`目录的方法。这种方法适用于相同版本的MySQL...

    MySQL千万数据解决方案

    缺点:有优化瓶颈,数据量过亿就玩完了。 方案二:升级数据库类型,换一种100%兼容mysql的数据库。优点:不影响现有业务,源程序不需要修改代码,你几乎不需要做任何操作就能提升数据库性能,缺点:多花钱 方案三...

    全国快递物流查询 阿里云 物流公司 mysql数据 与 json数据

    其次,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于阅读和编写,同时也易于机器解析和生成,而被广泛应用在网络通信中。在物流查询系统中,当用户请求特定包裹的信息时,服务器会从...

    50丨索引:如何在海量数据中快速查找某个数据?1

    3. **扩展性**:随着数据量增长,索引结构应具备良好的扩展性,适应数据规模的变化。 总之,索引是数据库和键值存储系统的核心优化手段,其设计需要综合考虑数据类型、动态性、存储位置、查询需求、空间效率和维护...

    Access 导入MySQL 数据文件

    然而,当数据量增大或者需要更高级的数据库功能时,如高并发处理和分布式计算,MySQL作为一个开源、高性能的数据库系统就显得更为合适。 MySQL是一款基于SQL标准的开源数据库,以其稳定性、速度和可扩展性而著名,...

    mysql数据导入导出php版 mysql数据导入导出php版

    总结,使用PHP进行MySQL数据导入导出涉及到的知识点包括:PHP执行shell命令、PDO和MySQLi扩展的使用、`mysqldump`和`mysqlimport`工具、`SELECT INTO OUTFILE`和`LOAD DATA INFILE` SQL语句、数据分批处理、事务管理...

    百万mysql测试数据

    7. **分区与分片**:面对大数据量,可以考虑使用分区或分片策略,将数据分散到多个物理设备上,提高查询效率。 8. **云服务与集群**:如果资源允许,可以考虑使用云数据库服务,如Amazon RDS,或者构建MySQL主从...

    Mysql大数据量存储及访问的设计讨论.pdf

    【标题】:MySQL大数据量存储及访问的设计讨论 【描述】:本文主要探讨了随着互联网应用的普及,如何处理和优化大数据量存储及访问的问题。针对大型互联网应用中出现的数据库高负载问题,提出了数据切分策略,包括...

    Sina架构师:基于MySQL可扩展架构设计 pdf

    在面对大数据量、高并发的挑战时,单纯依赖单个MySQL实例往往难以满足需求。因此,设计一个能够有效应对这些挑战的架构至关重要。 首先,书中可能会详细介绍MySQL的复制技术,这是实现数据冗余和故障恢复的基础。...

    Python-同步mysql数据到elasticsearch的工具

    "Python-同步mysql数据到elasticsearch的工具"正是为了实现这一目的,它提供了便捷的解决方案。 该工具主要基于Python编程语言开发,利用Python的灵活性和强大的库支持,实现了数据迁移的功能。Python的PyMySQL库...

    mysql与oracle数据互导

    注意:在实际操作中,应考虑数据量大小,对于大量数据,分批处理或使用批量插入可以提高效率。同时,根据实际需求,可能还需要处理事务管理、错误处理、性能优化等问题。 在Eclipse 3.6中,你可以创建一个新的Java...

    高性能可扩展MySQL数据库设计及架构优化 电商项目

    标题“高性能可扩展MySQL数据库设计及架构优化 电商项目”指向了本文内容的核心目标——为电商项目建立一个既可以支撑高并发交易,又能灵活应对数据量增长的MySQL数据库系统。在进行数据库架构设计时,高性能和可...

    MySQL构架设计与容量规划_findf2t_MYSQL_

    7. **扩展性设计**:随着业务增长,可能需要水平或垂直扩展MySQL集群,如通过分片技术处理大数据量,或者升级硬件提升单节点性能。 了解这些知识点后,你可以根据具体业务需求,设计出适合的MySQL架构并进行有效的...

    Mysql大数据量存储及访问的设计讨论.docx

    在互联网行业中,MySQL数据库在处理大数据量存储及访问时经常面临挑战。随着数据量的不断增长,单一数据库服务器可能会成为性能瓶颈,导致读写速度下降,进而影响整体系统的响应时间和稳定性。为了解决这一问题,...

Global site tag (gtag.js) - Google Analytics