.NET 讀寫分離 操作數據庫 ORM 框架

SqlSugar ORM完美支持了讀寫分離,使用超級簡單,只要配置連接字符串即可

讀寫分離:配置從表

1.如果存在事務所有操作都走主庫,不存在事務 修改、寫入、刪除走主庫,查詢操作走從庫 

2.HitRate 越大走這個從庫的概率越大

SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
                ConnectionString = Config.ConnectionString,//主庫
                DbType = DbType.SqlServer,
                IsAutoCloseConnection = true,
                //從庫
                SlaveConnectionConfigs = new List<SlaveConnectionConfig>() {
                     new SlaveConnectionConfig() { HitRate=10, ConnectionString=Config.ConnectionString2 } ,
                     new SlaveConnectionConfig() { HitRate=10, ConnectionString=Config.ConnectionString2 }
                }
 });
     //查詢 走從庫
     var list = db.Queryable<Student>().ToList();
      
     //插入 走主庫
     db.Insertable(new Student() { SchoolId = 1, Name = "jack" }).ExecuteCommand();
      
     //更新  走主庫
     db.Updateable(new Student() { Id = 1, SchoolId = 2, Name = "jack2" }).ExecuteCommand();
      
     //刪除  走主庫
     db.Deleteable<Student>().Where(it => it.Id == 1).ExecuteCommand();
 

  

  

配置主從複製

ORM是隻把讀和寫進行了請求處理,數據庫的主從複製,數據庫的同步需要去數據庫裏面配置

例如: SqlServer有訂閱 或者 alwayson等

 

爲什麼要讀寫分離?

降低數據庫服務器的壓力

如何實現讀寫分離?

1.一個主庫多個從庫

2.配置主庫複製數據到從庫

爲什麼一個主庫多個從庫?

一般查詢多於增刪改,這就是我們常說的二八原則,20%操作是增刪改,80%操作是查詢

是否有缺點?

有延遲

如何解決延遲問題?

比較及時性的數據還是通過主庫查詢

具體如何實現?

通過發佈服務器,主庫發佈,而從庫訂閱,從而實現主從庫

實現

SqlServer 實現

1.使用SqlServer 2019,新建一個主庫,創建表,再通過本地發佈創建發佈,

然後通過本地訂閱訂閱主庫,創建兩個從庫

2.配置AlwaysOn高可用性 

 

 https://www.cnblogs.com/chenmh/p/4484176.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章