前言
近十年来互联网技术得到了飞速的发展,越来越多的行业逐渐加入到了互联网的阵营中来,同时也产生了更丰富、更复杂的业务场景和需求,这对于数据应用系统的性能无疑是巨大的挑战。传统应用系统通常会选择关系型数据库 MySQL 作为存储引擎,原因是 MySQL 自身拥有强大的数据查询能力,同时能满足 ACID 强事务处理。但仅以单点 MySQL 作为存储系统架构会存在如下几个问题:
第一,存储规模和并发都存在瓶颈,难以支持规模很大的业务场景。
第二,集群需要预备计算和存储资源,弹性低。且集群扩缩容需要进行数据迁移,扩展性差。
第三,成本非常高。业务规模变大后成本会直线飙升,但是性能却存在瓶颈。
如何优化
上述的问题本质上也是关系型数据库瓶颈所在。可以从存储和流量两个方面来分析可优化的点。第一点是存储,可以按照访问频率、数据量将数据划分为热数据与冷数据。热数据的特点为规模小、访问频率高、事务相关性强。冷数据的特点为规模大、访问频率低、事务相关性弱。MySQL 仅负责热数据的存储,而将冷数据迁移到其他成本低、规模大的存储引擎中,具备这两个特性的毫无疑问是 NoSQL 数据库。第二点是流量,可以将流量划分为数据查询、数据检索、数据分析。其中数据检索、分析对服务计算资源消费比较高,可以将这部分流量卸载到 NoSQL 数据库中,MySQL只负责处理简单的数据查询。整体的优化如下图所示。
存储和流量卸载是数据分层架构的体现,数据分层存储架构在众多业务场景得到了广泛应用,例如电商订单场景,关于订单场景分层架构实现可参考基于 MySQL + Tablestore 分层存储架构的大规模订单系统实践,文章中讲解的订单场景里选择了表格存储 Tablestore 作为分层架构中的 NoSQL 数据库。
什么是表格存储
表格存储 Tablestore 于 2009 年阿里云成立之初即立项研发,基于底层飞天平台从零开始构建,是一款多模型、多引擎的 NoSQL 分布式数据库。目前已输出到金融、能源、电力、物流、医疗、政企等行业,服务于公有云 1000 多企业客户和 500 多线下项目。覆盖了国内外 30 多个区域,拥有 1.5 万服务器规模和 200PB 存储规模,是阿里云众多商业化产品的底层存储。表格存储 Tablestore 对标 HBase 和 ElasticSearch,拥有极致弹性体验、免运维、即开即用的特性,支持 PB 级数据存储和千万 TPS 毫秒级延迟,同时具备数据检索与分析能力,是集存储、搜索和分析多功能一体的一站式结构化数据存储平台。表格存储 Tablestore 的整体架构如下图所示。
书中后续章节将介绍表格存储的简单使用方法,带您快速上手 Tablestore 。如对本书中所述有疑问或者希望进一步了解表格存储,欢迎加入钉钉群:“表格存储公开交流群-2”。群内提供免费的在线专家服务,欢迎扫码加入,群号:23307953。