×

告别.NET分库分表难题!Sharding-Core:高性能的EF Core开源数据库神器

独孤求败 独孤求败 发表于2026-06-13 23:17:17 浏览26 评论0

抢沙发发表评论

我们做后台开发的时候,对于数据库数据量比较大的表,如果只建立一张表,所有数据都放在一张表里面,当存储的数据上量后,对于存储和查询都是灾难。原来我们写对于分表的操作都是通过程序里面判断是否有当月或单日表,没有就创建,完全需要手动处理。今天跟大家分享一个数据库分库和分表的强大的开源库Sharding-Core。

    
图片

Sharding-Core 是一款基于EF Core的高性能、轻量级开源数据分片解决方案,由dotnetcore社区维护,是.NET生态中稀缺的原生分片开源库。

区别于厚重、通用性的分布式数据库框架,它主打极致轻量化、专属EF Core、零业务入侵,核心定位就是:让.NET项目无需大幅改造,轻松实现分库分表、读写分离

        

图片
                                 系统架构图
      1、Sharding-Core特点:
      零依赖:框架本身仅依赖[efcore]和[efcore.relational]其他所有方法都自行编写完全可控100%开源。

       零学习成本:DbContext为核心进行数据扩展,让开发者在配置完成后几乎零学习成本使用,完美的happy coding

        

         零业务代码入侵:正真做到配置即实现,用户可以做到100%的业务代码无需修改即可实现分片和读写功能。


     2、快速开始

         我们以.Net Core控制台为例实现一个按月分表,且支持自动化建表建库的功能。

         2.1  第一步安装依赖

        

图片
       2.2  创建查询对象,数据库实体
图片
       2.3  创建dbcontext

         dbcontext AbstractShardingDbContext和 IShardingTableDbContext如果你是普通的DbContext那么就继承AbstractShardingDbContext需要分表就实现IShardingTableDbContext,如果只有分库可以不实现    IShardingTableDbContext接口  。

图片


   
       2.4  添加分表路由

        

图片

        2.5 配置Sharding-Core

图片

     2.6  启动使用

    

图片
接着你就可以正常使用分库分表了
图片

     3  、项目文档地址

         项目地址:https://github.com/dotnetcore/sharding-core

         文档地址:https://xuejmnet.github.io/sharding-core-doc/


       在Java分布式生态百花齐放的当下,.NET生态一直缺少一款轻量、纯粹、好用的专属分片框架。

        Sharding-Core 的出现,完美填补了这个空白。它不追求大而全,只专注EF Core分片场景,以零侵入、零成本、高性能的核心优势,让分布式数据库技术不再是复杂架构的专属,普通开发者也能轻松落地。

        如果你还在为.NET项目分库分表头疼,不想被厚重框架裹挟,想要低成本、高效率优化数据库性能,Sharding-Core 绝对是你的不二之选


群贤毕至

访客