<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 多庫使用 一個系統隨著規模增加,會從單一數據庫變成多數據庫,包含如下變化 1)業務庫變成主從庫. 2)分庫或者分表。根據數據特性來決定再哪個分表里操作,或者根據租戶來決定是哪個分表還是哪個分庫。 3)業務拆分多個庫,比如拆分成客戶庫,訂單庫,商品庫。 4)以上幾種混合形式 5)數據通過消息,數據庫日志等方式同步到大數據系統,大數據系統支持sql查詢,比如發送給hive和clickhouse。 6)業務拆分多個庫,寫數據落入到業務庫,查詢數據可以從分布式查詢引擎查詢,如presto,drill等。 7)業務拆分多個庫,可以使用ShardingSpher等中間件查詢 BeetlSQL3 應對前4個模式,內置有簡單的應對規則。如下 * 如果是同一種業務庫,則使用一個SQLManager管理,無論是分庫還是分表,都在底層路由到不同的數據庫,通過ConnectionSource來實現 * 最常見情況,如果是主從庫,那可以為ConnectionSource的配置多個從庫,這樣,更新操作(事務寫)走主庫,讀取(事務讀)操作走從庫。 * 如果是單庫分表操作,表名可以是表達式,比如@Table(name="${user}")。beetlsql能解析表達式,映射到不同的表,user_001,user_002 * 單庫單表多租戶,需要自動在sql語句中增加租戶語句。可以對相關POJO增加租戶屬性,自動生成租戶相關的sql片段 * 每個租戶一個數據庫,這需要ConditionalConnectionSource這樣的能自動返回不同租戶的數據庫鏈接。 * BeetlSQL可以集成分庫分表中間件。像MyCat,ShardingSphere,都可以透明的集成進來。這得益于這些中間件提供的集成功能 * 如果是多個業務庫,則使用多個SQLMananger。 * 項目可以配置多個數據源對應多個業務庫,為每個數據源配置一個SQLManager,比如orderSqlManagr,proudctSqlManager * 如果覺得多個SQLManager難以管理,多個SQLManager可以使用一個ThreadLocalSQLManager來管理,方便開發。ThreadLocalSQLManager.來決定當前操作使用哪一個SQLManager * 用戶也可以自己參考ThreadLocalSQLManager那樣,編寫一個SQLManagerProxy,來管理多個SQLManager * 中間件MyCat,ShardingSphere等支持分庫分表,多庫。beetlsql與這些中間件無縫集成。 >個人建議:對于使用BeetlSQL的分庫分表功能,還是使用中間件的分庫分表,包括是否要引入SQL查詢引擎或者大數據系統,這取決于業務發展。初期建議使用BeetlSQL的分庫分表,后期使用BeetlSQL分表+大數據系統或者查詢引擎。如果你對中間件掌握的很好,也可以使用中間件 BeetlSQL 同其他大多數ORM工具一樣,在多庫使用的缺點 * BeetlSQL3對于數據庫分庫分表后的匯總查詢無能為力,這需要自己編寫,或者使用SQL查詢引擎實現。BeetlSQL支持很多SQL查詢引擎。 * 對于多庫下的事物,BeetlSQL 無法解決,因為BeetlSQL是一個ORM工具,來代理JDBC操作。要實現多庫事物,可以使用XA或類似XA的事務管理器,或者Saga等分布式事物解決方案 本章例子來源于源碼 [S6MoreDatabase](https://gitee.com/xiandafu/beetlsql/blob/master/sql-samples/sql-sample-quickstart/src/main/java/org/beetl/sql/test/S6MoreDatabase.java)或者單元[MoreDatabaseTest](https://gitee.com/xiandafu/beetlsql/blob/master/sql-test/src/test/java/org/beetl/sql/core/MoreDatabaseTest.java),或者[SpringBoot](https://gitee.com/xiandafu/beetlsql/tree/master/sql-integration/sql-springboot-starter/src/test/java/org/beetl/sql/springboot)下提供所有的例子
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看