色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Mybaits+springboot有哪些分庫分表插件推薦?

吉茹定2年前19瀏覽0評論

可以通過SpringBoot+MyBatis+Sharding-JDBC實現分庫分表。

Sharding-JDBC

Sharding-JDBC:定位為輕量級Java框架,在Java的JDBC層提供的額外服務。它使用客戶端直連數據庫,以jar包形式提供服務,無需額外部署和依賴,可理解為增強版的JDBC驅動,完全兼容JDBC和各種ORM框架。

  • 適用于任何基于Java的ORM框架,如JPA、Hibernate、MyBatis、SpringJDBCTemplate或直接使用JDBC.
  • 基于任何第三方的數據庫連接池,如DBCP、C3P0、BoneCP、Druid、HikariCP等。
  • 支持任意實現JDBC規范的數據庫,如MySQL、Oracle、SQLSever和PostgreSQL以及任何遵循SQL92標準的數據庫。
  • sharding-jdbc架構

    ShardingSphere-JDBC采用無中心化架構,適用于Java開發的高性能的輕量級OLTP應用。

    功能

  • 數據分片:分庫和分表,讀寫分離,分布式主鍵;
  • 分布式事務;XA強一致事務,柔性事務;
  • 數據庫治理;配置動態化,熔斷和禁用,調用鏈路追蹤;
  • 分庫分表方式

    分庫分表方式分別為垂直分表、垂直分庫、水平分表和水平分庫。

  • 垂直分表:把一個寬表的字段按訪問頻次、是否是大字段的原則拆分為多個表,這樣可以使業務清晰,還能提升部分性能。拆分后,盡量從業務角度避免聯查,否則性能方面將得不償失。
  • 垂直分庫:把多個表按照業務耦合松緊歸類,分別存放不同的庫,這些庫可以分布不同服務器,從而使訪問壓力被多服務器負載,大大提升性能,同時能提高整體架構的業務清晰度,不同的業務庫可根據自身情況定制優化方案。但是它需要解決跨庫帶來的所有復雜問題。
  • 水平分庫:把一個表的數據(按數據行)分到多個不同的庫,每個庫只有這個表的部分數據,這些庫可以分布在不同服務器,從而使訪問壓力被多個服務器負載,大大提升性能。它不僅需要解決跨庫帶來的所有復雜度問題,還要解決數據路由的問題。
  • 水平分表:把一個表的數據(按數據行)分到多個同一個數據庫的多張表中,每個表只有這個表的部分數據,這樣能小幅提升性能,它僅僅作為水平分庫的一個補充優化。
  • 一般來說,在系統設計階段就應該根據業務耦合松緊來確定垂直分庫和垂直分表方案,在數據量、訪問壓力不是特別大的情況,首先考慮緩存、讀寫分離、索引技術等方案。若數據量極大,且持續增長,再考慮水平分庫和水平分表方案。

    引入maven依賴

    注意:請將${latest.release.version}更改為實際的版本號。

    規則配置

    ShardingSphere-JDBC可以通過Java,YAML,Spring命名空間和SpringBootStarter這4種方式進行配置,開發者可根據場景選擇適合的配置方式。

    創建數據源

    通過ShardingSphereDataSourceFactory工廠和規則配置對象獲取ShardingSphereDataSource。該對象實現自JDBC的標準DataSource接口,可用于原生JDBC開發,或使用JPA,MyBatis等ORM類庫。

    官方中文文檔:https://shardingsphere.apache.org/document/current/cn/overview/


    如果解決了你的疑惑,請點點關注,謝謝支持。