asp网站服务建设论文,php网站本地调试,网站个人备案百度推官,wordpress密码保护文章更多开源项目请查看#xff1a;一个专注推荐.Net开源项目的榜单 在项目开发中#xff0c;如果数据量比较大#xff0c;比如日志记录#xff0c;我们往往会采用分表分库的方案#xff1b;为了提升性能#xff0c;把数据库查询与更新操作分开#xff0c;这时候就要采用读写… 更多开源项目请查看一个专注推荐.Net开源项目的榜单 在项目开发中如果数据量比较大比如日志记录我们往往会采用分表分库的方案为了提升性能把数据库查询与更新操作分开这时候就要采用读写分离的方案。
分表分库通常包含垂直分库、垂直分表、水平分库和水平分表方案包括分表分库方案实现每一个方案都需要花费一定的时间所以今天给大家推荐一个基于EF Code实现的分表分库、读写分离开源库可以让我们零成本的接入。
项目简介
这是一个针对EF Code高性能、轻量级分表分库、读写分离开源项目可以让我们方便快速接入、或者改造原有项目几乎零成本接入。
项目特性
1、分表时间分表、自定义分表、多表查询更新删除。
2、分库支持自定义分库、分库查询更新删除。
3、分表分库支持部分表格分表、部分表格分库。
4、读写分离支持一主多从的读写分离的方案。
5、其他支持动态分表、分库支持高性能查询支持事务等。
技术架构
1、跨平台基于.NetCore开发支持Windows、Mono、Liunx、Windows Azure。
2、支持 Standard 2.0、.NetCore 2.0。
3、数据库支持MySql、Oracle、SqlServer。
项目结构 该项目包含不同数据库的例子src为不同版本的源码。
快速上手
**1、表的定义 **
public class SysUserMod:IAge
{
/// summary
/// 用户Id用于分表
/// /summary
public string Id { get; set; }
/// summary
/// 用户名称
/// /summary
public string Name { get; set; }
/// summary
/// 用户姓名
/// /summary
public int Age { get; set; }
}2、分表规则
public class SysUserModVirtualTableRoute : AbstractSimpleShardingModKeyStringVirtualTableRouteSysUserMod
{//根据ID取模3分为2张表
public SysUserModVirtualTableRoute() : base(2,3){}public override void Configure(EntityMetadataTableBuilderSysUserMod builder){builder.ShardingProperty(o o.Id);}}3、Startup配置
public void ConfigureServices(IServiceCollection services)
{......services.AddShardingDbContextDefaultShardingDbContext().UseRouteConfig(o {
//定义分表路由o.AddShardingDataSourceRouteSysUserModVirtualDataSourceRoute();}).UseConfig((sp,o) {......
//指定主从数据库o.AddDefaultDataSource(ds0,
server127.0.0.1;port3306;databasedb1;useridroot;passwordroot;);o.AddExtraDataSource(sp new Dictionarystring, string(){{ ds1, server127.0.0.1;port3306;databasedb2;useridroot;passwordroot; },{ ds2, server127.0.0.1;port3306;databasedb3;useridroot;passwordroot; }});o.UseShardingMigrationConfigure(b {b.ReplaceServiceIMigrationsSqlGenerator, ShardingMySqlMigrationsSqlGenerator();});}).ReplaceServiceIModelCacheLockerProvider,DicModelCacheLockerProvider().AddShardingCore();
}项目地址 Github https://github.com/dotnetcore/sharding-core Gitee https://gitee.com/xuejm/sharding-core - End -
欢迎加入 学习小圈子 获取海量的编程学习资源、学习路线和大家一起打卡、分享编程知识、共同进步。
推荐阅读
一个简单、功能完整的WMS仓库管理系统
阅读开源项目源代码的方法与心得
一个基于C#开发的Socket扩展库
基于.Net Core开发的支付SDK简化支付功能开发
年度盘点10个最受欢迎的.Net开源项目