mycat 存储过程_存储海量数据,Mysql分库分表麻烦,阿里云tableStore了解下

为啥要分库分表

你在一个创业型小公司做架构师,做的是电商项目,刚开始注册人数就几万而已,交易最多每天就几百单数据生成,这种情况下不用分库分表没问题的。

后面公司项目发展越来越快,用户活跃数几十万,订单生成数一天几百万,这个时候你的数据库服务器明显的扛不住的,单表的数据太多,磁盘资源有限,一系列的压力最终会导致系统无法使用。

904b9bdd444d3145a33d16be48e8a912.png

这个时候架构师应该想到的是要进行业务划分,使用sharding-jdbc、mycat进行分库分表存储海量的数据。

这个是能解决上述的问题的,但是往往不是那么简单。

1、大量的编码工作,需要对查询集合计算结果,存储的时候按照不同的规则存入不同的库或者表中,工作量挺大的。

2、分库分表还要看以什么条件去进行切分,分的不好,可能查询次数变多,join无法使用,对排序分组也有很大的影响。这是个很重要的问题,要全面分析。

3、进行分库分表后,是不是又要保证原子性,改动后事务处理变得复杂。

等等。。。。还有一些其他的原因。

tableStore

tableStore也叫表格存储 是阿里云自研的NoSQL多模型数据库,提供海量结构化数据存储以及快速的查询和分析服务。

表格存储支持分布式存储和强大的索引引擎,能够支持PB级存储、千万TPS以及毫秒级延迟的服务能力。

主要特点:

  • 全托管。你只需专注于业务研发,无需担心软硬件预置、配置、故障、集群扩展、安全等问题,在保证高服务可用性的同时,极大地减少了管理及运维成本。
  • 模型丰富。包括Wide column、Timeline、Timestream、Grid。各种模型有各自适合的使用场景。
  • 无缝扩展。表格存储通过数据分片和负载均衡技术,实现了存储无缝扩展。随着表数据量的不断增大,表格存储会进行数据分区的调整从而为该表配置更多的存储。
  • 查询能力强。通过二元索引基本能满足传统数据库的查询。
  • 高可靠。表格存储将数据的多个备份存储在不同机架的不同机器上,并会在备份失效时进行快速恢复。
  • 数据强一致。表格存储保证数据写入强一致,写操作一旦返回成功,应用程序就能立即读到最新的数据。
  • 高并发读写。支持千万级并发读写能力。

我们现在的项目当初做的时候也是挺急的,为了避免后期的大改动,所以选择了这个作为数据存储。

使用过程中文档齐全,最主要的是性能确实很不错,查询,写入性能很强。但是也存在着问题。

开发过程中遇到的缺点:

  • 二元索引构建慢。你对一个表的查询会用到多个字段的时候,通常都是要简历二元索引的。数据写入的时候,构建二元索引较慢,所以你通过索引查询的时候存在延迟,大概2s左右。
  • 事务的支持。表格存储只支持局部事务也叫分区键事务,可以指定某个分区键下的操作是原子的。也就是说你对一个表的批量写是有事务的,如果换了表那就没办法了。这个对于分布式系统来说确实也是存在问题的,一个表写入了,另一个表的写入异常了,回滚不了。

你觉得这个tableStore怎么样呢,有没有更好的便捷存储方式推荐,请留言!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值