<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [NewLife.XCode]事務處理(算準你的每一分錢)

      NewLife.XCode是一個有10多年歷史的開源數據中間件,支持nfx/netstandard,由新生命團隊(2002~2019)開發完成并維護至今,以下簡稱XCode。

      整個系列教程會大量結合示例代碼和運行日志來進行深入分析,蘊含多年開發經驗于其中,代表作有百億級大數據實時計算項目。

      開源地址:https://github.com/NewLifeX/X (求star, 743+)

       

      為什么需要事務

      事務,通俗來講,同時干幾件事,要么一起成功,要么一起失敗

      一個比較古老的事務處理案例,(在2002年前后比較常見),就是轉賬:

      • A給B轉賬100元,先在A賬戶減100元,然后在B賬號加100元,如果A減成功而B加失敗,那么就會數據不一致
      • A給B轉賬100元,先在B賬戶加100元,然后在A賬號減100元,如果B加成功而A減失敗,同樣有問題

      此時,需要一個事務把兩個操作包含起來,偽代碼如下:

      begin;
          A-=10;
          B+=10;
          commit;
      exception
          rollback;
      end

      這里用白話解釋了為什么需要事務,至于事務的原理,絕大部分開發者用不到,感興趣者可以自行搜索學習。

       

      事務用法

      1,最老的用法。從實體類元數據開始

      UserX.Meta.BeginTrans();
      try
      {
          //todo
          UserX.Meta.Commit();
      }
      catch
      {
          UserX.Meta.Rollback();
          throw;
      }

      2,基于連接的用法。實體類事務實質上是在連接上開事務,因此同一個連接的多個實體類,不管用哪一個開事務效果都是一樣的

      var dal = UserX.Meta.Session.Dal;
      dal.BeginTransaction();
      try
      {
          //todo
          dal.Commit();
      }
      catch
      {
          dal.Rollback();
          throw;
      }

      3,最先進的用法。未提交而離開作用域時執行回滾,還支持多個不同數據庫同時打開事務

      using (var tran1 = UserX.Meta.CreateTrans())
      using (var tran2 = Role.Meta.CreateTrans())
      {
          //todo
      
          tran1.Commit();
          tran2.Commit();
      }

      在業務代碼里面,如果有問題直接拋出異常或者return跳出作用域即可

       

      事務對自增的影響

      在向帶有自增的表插入數據時,如果因事務失敗而導致回滾,則已“占用”的自增序數不會歸還,導致數據庫數據的自增數看起來有“斷層”的感覺。

       

      系列教程

      NewLife.XCode教程系列[2019版]

      1. 增刪改查入門。快速展現用法,代碼配置連接字符串
      2. 數據模型文件。建立表格字段和索引,名字以及數據類型規范,推薦字段(時間,用戶,IP)
      3. 實體類詳解。數據類業務類,泛型基類,接口
      4. 功能設置。連接字符串,調試開關,SQL日志,慢日志,參數化,執行超時。代碼與配置文件設置,連接字符串局部設置
      5. 反向工程。自動建立數據庫數據表
      6. 數據初始化。InitData寫入初始化數據
      7. 高級增刪改。重載攔截,自增字段,Valid驗證,實體模型(時間,用戶,IP)
      8. 臟數據。如何產生,怎么利用
      9. 增量累加。高并發統計
      10. 事務處理。單表和多表,不同連接,多種寫法
      11. 擴展屬性。多表關聯,Map映射
      12. 高級查詢。復雜條件,分頁,自定義擴展FieldItem,查總記錄數,查匯總統計
      13. 數據層緩存。Sql緩存,更新機制
      14. 實體緩存。全表整理緩存,更新機制
      15. 對象緩存。字典緩存,適用用戶等數據較多場景。
      16. 百億級性能。字段精煉,索引完備,合理查詢,充分利用緩存
      17. 實體工廠。元數據,通用處理程序
      18. 角色權限。Membership
      19. 導入導出。Xml,Json,二進制,網絡或文件
      20. 分表分庫。常見拆分邏輯
      21. 高級統計。聚合統計,分組統計
      22. 批量寫入。批量插入,批量Upsert,異步保存
      23. 實體隊列。寫入級緩存,提升性能。
      24. 備份同步。備份數據,恢復數據,同步數據
      25. 數據服務。提供RPC接口服務,遠程執行查詢,例如SQLite網絡版
      26. 大數據分析。ETL抽取,調度計算處理,結果持久化

       

      posted @ 2019-04-01 21:53  大石頭  閱讀(1554)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 牛牛视频一区二区三区| 日韩精品一区二区三区久| 国产一区二区三区四区色| 亚洲国产日韩伦中文字幕| 久热这里只有精品12| 亚洲视频一区| 四虎国产精品成人免费久久| 国产成人a在线观看视频免费| 湖北省| 亚洲伊人久久大香线蕉| 精品偷自拍另类精品在线| 日韩人妖精品一区二区av| 99久久成人国产精品免费| 亚洲精品动漫免费二区| 亚洲中文久久久精品无码| 中文字幕波多野不卡一区| 亚洲人成小说网站色在线| 日韩精品自拍偷拍一区二区| 欧美乱大交aaaa片if| 中文字幕有码无码人妻在线| 毛片网站在线观看| 久久www免费人成看片中文| 久久综合精品国产一区二区三区无 | 四虎影视一区二区精品| 久久国产精品成人免费| 亚洲a片无码一区二区蜜桃| 亚洲偷自拍国综合| 天天弄天天模| 中文字幕乱码中文乱码毛片| 精品国产色情一区二区三区| 玖玖在线精品免费视频| 欧美日韩中文国产一区| 国产精品小粉嫩在线观看| 日韩中文字幕有码av| 阜城县| 成全高清在线播放电视剧| 日韩在线观看中文字幕| A毛片终身免费观看网站| 天堂av网一区二区三区| 亚洲精品中文字幕尤物综合| 亚洲av永久无码精品天堂久久|