`
骑猪逛街666
  • 浏览: 129691 次
  • 性别: 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千万数据解决方案

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

    MySQL有什么不可替代的作用?运用MySQL开发网站的步骤分析.docx

    这意味着,当您的数据量增长时,您可以轻松地扩展MySQL以满足您的需求。MySQL的可扩展性使其成为企业不断发展和壮大的理想选择。 第三,MySQL具有强大的安全功能。MySQL提供了密码加密、访问控制和数据加密等安全...

    大数据量下,58同城mysql实践

    大数据量下,搞mysql,以下概念需要先达成一致1)单库,不多说了,就是一个库2)分片(sharding),水平拆分,用于解决扩展性问题,按天拆分表3)复制(replication)与分组(group),用于解决可用性问题4)分片+...

    MYSQL

    4.6.1 Linux RPM注意事项 4.6.2 构造客户程序 4.6.3 系统特定的问题 4.6.3.1 Linux 注意事项 4.6.3.2 HP-UX 注意事项 4.7 安装 MySQL源代码分发 4.7.1 快速安装概述 4.7.2 运用补丁...

    计算机专业的程序员学好MySQL数据库有什么意义?和其他数据库相比,MySQL的优点分析.docx

    此外,在数据库遇到故障时,MySQL还具有恢复功能,可以快速恢复数据。 第三,MySQL是非常灵活的。它可以根据需要进行配置和自定义,以满足特定的应用程序需求。MySQL提供了多种配置选项,您可以根据需要进行调整和...

    MySql 5.1 参考手册.chm

    5.1.2. mysqld-max扩展MySQL服务器 5.1.3. mysqld_safe:MySQL服务器启动脚本 5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 ...

    MySQL中文参考手册.chm

    4.6.2 构造客户程序 4.6.3 系统特定的问题 4.6.3.1 Linux 注意事项 4.6.3.2 HP-UX 注意事项 4.7 安装 MySQL源代码分发 4.7.1 快速安装概述 4.7.2 运用补丁 4.7.3 典型的...

    MySQL 5.1中文手冊

    5.1.2. mysqld-max扩展MySQL服务器 5.1.3. mysqld_safe:MySQL服务器启动脚本 5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 ...

    什么叫做MySQL?建立MySQL数据库的步骤详细讲解.docx

    MySQL的易用性、可靠性和可扩展性等优点,使其广泛应用于Web应用程序的开发中。学好MySQL可以帮助程序员在数据库管理、Web开发和数据分析等方面具备更强的竞争力,并有助于他们在找工作时获得更多的机会。 MySQL是...

    MySQL中文参考手册

    + 4.7.1 快速安装概述 + 4.7.2 运用补丁 + 4.7.3 典型的configure选项 o 4.8 编译问题? o 4.9 MIT-pthreads 注意事项 o 4.10 Perl 安装说明 + 4.10.1 在Unix操作系统上安装 Perl + 4.10.2 在 Win32上安装 ...

    MySQL 5.1官方简体中文参考手册

    5.1.2. mysqld-max扩展MySQL服务器 5.1.3. mysqld_safe:MySQL服务器启动脚本 5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 ...

    MySQL 5.1参考手册

    5.1.2. mysqld-max扩展MySQL服务器 5.1.3. mysqld_safe:MySQL服务器启动脚本 5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 ...

    MySQL作为一款成熟稳定的数据库管理系统,在数据存储和管理方面具有重要的地位和价值,为各种应用程序提供了可靠的数据支持

    扩展性:MySQL支持水平和垂直扩展,可以根据需要增加服务器硬件资源或者搭建分布式架构,以应对不断增长的数据需求。 社区支持:MySQL拥有庞大的开发者社区和技术支持团队,用户可以通过官方文档、论坛和社交媒体等...

    MySQL 5.1参考手册中文版

    5.1.2. mysqld-max扩展MySQL服务器 5.1.3. mysqld_safe:MySQL服务器启动脚本 5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 ...

    MySQL 5.1参考手册 (中文版)

    5.1.2. mysqld-max扩展MySQL服务器 5.1.3. mysqld_safe:MySQL服务器启动脚本 5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 ...

    mysql5.1中文手册

    mysqld-max扩展MySQL服务器 5.1.3. mysqld_safe:MySQL服务器启动脚本 5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理...

    MYSQL管理系统(AMS) 1.5.0107.zip

    欢迎使用 PHP MYSQL数据库管理系统-AMS-易用...06) 友好: 友好的数据分页展现,解决PHPMYADMIN SQL LIMIT 10000或关联查询数据量过大加载显示不佳问题。 07) 其它: 支持用户扩展开发、良好架构,简单安全易用,等……

    深入探索MySQL主从架构与读写分离:提升数据安全和性能的实战指南

    此外,还探讨了MySQL高可用方案和分库分表的实用性,说明了这些技术在处理大数据量时如何提升数据库性能和可扩展性。总之,本文为开发者提供了一套完整的MySQL主从架构与读写分离的实战指南,旨在帮助他们有效地解决...

Global site tag (gtag.js) - Google Analytics