草庐IT

分库分表

全部标签

一种自平衡解决数据倾斜的分表方法

作者:京东零售梁强1、背景这篇主要描述了B端令牌系统应用数据分表解决业务数据量增大,且存在的数据倾斜问题,主要面向的场景是一对多数据倾斜问题1)B令牌的业务背景先简述一下B令牌的业务背景,B令牌系统是用于营销场景中,将许多用户绑定在一个令牌上,再将令牌绑定在促销上,从而实现差异和精准营销,一般情况下一个令牌的生命周期等同于这个促销。2)B端令牌的结构现状令牌和令牌用户关系是一个一对多的关系,早期的令牌系统使用jed分库,2个分片,中间进行了一次扩容达到了8个分片,存储的数据行数达到了1.2亿3)数据和业务现状1.2亿数据,分布在8个分库中,每个分库平均1500万,但由于分库字段使用的是令牌ID

别再分库分表了,试试TiDB!

TiDB是一个分布式NewSQL数据库。它支持水平弹性扩展、ACID事务、标准SQL、MySQL语法和MySQL协议,具有数据强一致的高可用特性,是一个不仅适合OLTP场景还适合OLAP场景的混合数据库。TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(HybridTransactionalandAnalyticalProcessing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL5.7协议和MySQL生态等重要特性。目标是为用户提供一站式OLTP(Onli

别再分库分表了,试试TiDB!

TiDB是一个分布式NewSQL数据库。它支持水平弹性扩展、ACID事务、标准SQL、MySQL语法和MySQL协议,具有数据强一致的高可用特性,是一个不仅适合OLTP场景还适合OLAP场景的混合数据库。TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(HybridTransactionalandAnalyticalProcessing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL5.7协议和MySQL生态等重要特性。目标是为用户提供一站式OLTP(Onli

EFCore分表实现

实现原理当我们new一个上下文DbContext后,每次执行CURD方式时,都会依次调用OnConfiguring(),OnModelCreating()两个方法。OnConfiguring()我们将用来替换一些服务实现,以支持分表的工作OnModelCreating()我们将用来重新实现实体与数据库表的映射关系每次调用OnModelCreating()时,会判断实体与数据库表的映射关系有没有改变,如果改变则采用新的映射关系。判断是否发生改变,通过替换IModelCacheKeyFactory接口的实现来完成。详情可见:在具有相同DbContext类型的多个模型之间进行交替IModelCach

EFCore分表实现

实现原理当我们new一个上下文DbContext后,每次执行CURD方式时,都会依次调用OnConfiguring(),OnModelCreating()两个方法。OnConfiguring()我们将用来替换一些服务实现,以支持分表的工作OnModelCreating()我们将用来重新实现实体与数据库表的映射关系每次调用OnModelCreating()时,会判断实体与数据库表的映射关系有没有改变,如果改变则采用新的映射关系。判断是否发生改变,通过替换IModelCacheKeyFactory接口的实现来完成。详情可见:在具有相同DbContext类型的多个模型之间进行交替IModelCach

MySQL的主从复制和分库分表初探

主从复制+分库分表要讲主从复制,首先来看看MySQL自带的日志文件。日志错误日志错误日志是MySQL中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志文件。该日志是默认开启的,默认存放目录/var/log/,默认的日志文件名为mysqld.log。查看日志位置:showvariableslike'%log_error%';通过tail指令查看日志文件的尾部记录的日志:tail-50/var/log/mysqld.log实时查看文件尾部记录的日志:tail-f/var/log/my

MySQL的主从复制和分库分表初探

主从复制+分库分表要讲主从复制,首先来看看MySQL自带的日志文件。日志错误日志错误日志是MySQL中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志文件。该日志是默认开启的,默认存放目录/var/log/,默认的日志文件名为mysqld.log。查看日志位置:showvariableslike'%log_error%';通过tail指令查看日志文件的尾部记录的日志:tail-50/var/log/mysqld.log实时查看文件尾部记录的日志:tail-f/var/log/my

分库分表真的适合你的系统吗?聊聊分库分表和NewSQL如何选择

曾几何时,“并发高就分库,数据大就分表”已经成了处理MySQL数据增长问题的圣经。面试官喜欢问,博主喜欢写,候选人也喜欢背,似乎已经形成了一个闭环。但你有没有思考过,分库分表真的适合你的系统吗?分表在业务刚刚发展起来的时候,流量全部打到了一个MySQL上,用户信息全落到了user表。后来,user表的数据量越来越大了。于是,你做了一次垂直拆分,将原来的user表拆分成了新的user表和user_details表。这样一拆之后,用户的信息分散到两个表,user表的数据量一下就变小了,user表数据量过大的问题暂时就解决了。但随着业务的发展,线上的流量越来越大,单个MySQL已经扛不住流量的压力了

分库分表真的适合你的系统吗?聊聊分库分表和NewSQL如何选择

曾几何时,“并发高就分库,数据大就分表”已经成了处理MySQL数据增长问题的圣经。面试官喜欢问,博主喜欢写,候选人也喜欢背,似乎已经形成了一个闭环。但你有没有思考过,分库分表真的适合你的系统吗?分表在业务刚刚发展起来的时候,流量全部打到了一个MySQL上,用户信息全落到了user表。后来,user表的数据量越来越大了。于是,你做了一次垂直拆分,将原来的user表拆分成了新的user表和user_details表。这样一拆之后,用户的信息分散到两个表,user表的数据量一下就变小了,user表数据量过大的问题暂时就解决了。但随着业务的发展,线上的流量越来越大,单个MySQL已经扛不住流量的压力了

.Net下极限生产力之efcore分表分库全自动化迁移CodeFirst

.Net下极限生产力之分表分库全自动化MigrationsCode-First##介绍本文ShardinfCore版本x.6.x.x+本期主角:-[`ShardingCore`](https://github.com/dotnetcore/sharding-core)一款ef-core下高性能、轻量级针对分表分库读写分离的解决方案,具有零依赖、零学习成本、零业务代码入侵适配目录开始移除静态容器原生efcore集成AbpVNext集成Furion集成WTM开始本次我们的主题就是极限生产力,其他语言望尘莫及的分表分库全自动化MigrationsCode-First加efcore分表分库无感开发还记