Springboot 學習 之 Shardingsphere 按照日期水平分表(二)

文章目錄

  • 業務場景
  • 依賴
  • 配置
  • 特別注意
  • 優劣
  • 參考資料

業務場景

報表大數據量 且需要 按照日期顯示 的業務場景下,按照 日期水平分表 是一個不錯的選擇

依賴

	<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.17.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent>
    <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId><version>5.2.1</version></dependency><dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId><version>1.33</version></dependency>

配置

bootstrap.yml

spring:shardingsphere:mode:                   # 模式配置type: Standalone      # 單機模式repository:type: JDBC          # 存儲類型props:sql-show: true        # 是否打印 SQLdataSources:            # 數據源配置names: ds0ds0:                  # 數據源名稱type: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.jdbc.DriverjdbcUrl: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=falseusername: rootpassword: rootpasswordrules:                  # 規則配置sharding:             # 分片標簽tables:             # 表規則DASHBOARD_CUS_DATE:   # 邏輯表名稱actualDataNodes: ds0.DASHBOARD_CUS_DATE_$->{2024..2099}$->{(1..12).collect{m -> sprintf('%02d', m)}}$->{(1..31).collect{d -> sprintf('%02d', d)}} # 官方建議 $->{} 寫法,而非 ${};起始位 20250101 對應的物理表必須存在,否則報 TABLE DON'T EXISTtableStrategy:      # 表策略standard:         # 標準分片策略shardingColumn: STATISTIC_DT  # 分片列shardingAlgorithmName: dashboard_cus_date_interval   # 分片算法名稱  !!!禁止大寫shardingAlgorithms: # 分片算法dashboard_cus_date_interval:  # 分片算法名稱  !!!禁止大寫type: INTERVAL  # 時間分片算法props:         # 分片算法屬性datetime-pattern: 'yyyy-MM-dd'            # 時間格式datetime-lower: '2025-01-01'              # 起始時間datetime-upper: '2099-12-31'              # 結束時間datetime-interval-amount: 1               # 時間間隔長度datetime-interval-unit: 'DAYS'            # 時間間隔單位datetime-suffix-pattern: 'yyyyMMdd'       # 時間后綴格式

特別注意

  • 水平分表時,如果未配置自動分表(autoTables 標簽,從 5.3.0 開始支持),最好手動將涉及的物理表都創建好,否則很可能遇到 Table doesn't exist 錯誤
  • 分片算法名稱注意大小寫,shardingsphere-jdbc-core-spring-boot-starter 大小寫敏感,算法名稱大寫會導致 props 屬性內容加載失敗

優劣

  • 優:遠程配置方便,與常規項目一般無二
  • 劣:大雜燴,都放在一起

參考資料

  1. ShardingSphere 中文官網

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73418.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73418.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73418.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(UI自動化測試web端)第二篇:元素定位的方法_xpath擴展(工作當中用的比較多)

看代碼里的【driver.find_element_by_xpath( )】()里的路徑怎么寫&#xff1f; xpath元素定位有多種寫法&#xff0c;那我們現在說的就是在元素定位時&#xff0c;根據網頁的實際情況來選擇適合的xpath元素定位的寫法。信我 &#xff0c;你真正工作當中每個都有用的&#xff01…

[已解決]服務器CPU突然飆高98%----Java程序OOM問題 (2024.9.5)

目錄 問題描述問題排查問題解決參考資料 問題描述 業主單位服務器自8月29日晚上21:00起CPU突然飆高至98%&#xff0c;內存爆滿&#xff0c;一直到9月5日&#xff1a; 問題排查 ①執行 top 命令查看Java進程PID top②執行top -Hp PID 命令查看具體的線程情況 top -Hp 3058輸入上…

Mybatis基于注解開發

Mybatis基于注解進行開發 基于注解形式開發Mybatis省去XML的SQL映射配置文件&#xff08;只需要在Mybatis的核心配置文件中設置要掃描的接口通過Mapper標簽中的子標簽<package>指定要掃描的包&#xff09; 注意&#xff1a;在進行想改的SQL操作的時候首先要注意數據表的…

【C++】STL性能優化實戰

STL性能優化實戰 STL (Standard Template Library) 是 C 標準庫的核心部分&#xff0c;提供了各種容器、算法和迭代器。雖然 STL 提供了強大的功能&#xff0c;但不恰當的使用可能導致性能問題。下面我將詳細介紹 STL 性能優化的實戰技巧&#xff0c;并通過具體案例說明。 1.…

OSI模型_TCP/IP模型_五層模型

文章目錄 OSI模型_TCP/IP模型_五層模型模型對比模型層級對比關鍵區別對比 OSI模型OSI模型概述舉例說明流程圖示 TCP/IP 四層模型模型結構舉例說明流程圖示 TCP/IP 五層模型模型的結構舉例說明流程圖示 OSI模型_TCP/IP模型_五層模型 學OSI&#xff0c;用TCP/IP&#xff0c;分析選…

R語言——字符串

參考資料&#xff1a;學習R 文本數據存儲在字符向量中。重要的是&#xff0c;字符向量中的每個元素都是字符串&#xff0c;而非單獨的字符。 文本的基本單位是字符向量&#xff0c;著意味著大部分字符串處理函數也能用于字符向量。 1、創建和打印字符串 字符向量可用c函數創建…

如何區別在Spring Boot 2 和 Spring Boot 3 中使用 Knife4j:集成與配置指南

在現代的 Web 開發中&#xff0c;API 文檔是不可或缺的一部分。Knife4j 是基于 Swagger 的增強工具&#xff0c;它不僅提供了更友好的 API 文檔界面&#xff0c;還支持更多實用的功能&#xff0c;如離線文檔導出、全局參數配置等。本文將詳細介紹如何在 Spring Boot 2 和 Sprin…

pagehelper 分頁插件使用說明

pom.xml&#xff1a;pageHelper坐標 <!--pageHelper坐標--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</version></dependency> 分…

C++可變參數

可變參數C風格的可變參數C風格可變參數的使用 C11可變參數模板遞歸展開參數包參數列表展開折疊表達式 STL中的emplace插入接口 可變參數 C風格的可變參數 可變參數是一種語言特性&#xff0c;可以在函數聲明中使用省略號...來表示函數接受可變數量的參數。 例如典型的printf…

數據庫的操作,以及sql之DML

首先&#xff0c;創建表以及插入數據 create table t_text(id int primary key auto_increment,name varchar(20) unique not null,gender char(5) not null check(gender in ("男","女")),deed varchar(255) not null default "事例不詳"); in…

vue2前端日志數據存儲(indexedD)自動清理3天前的數據

前言&#xff1a;關于Dexie.js這個前端本地數據庫&#xff0c;如何使用IndexedDB來存儲數據&#xff0c;并且設置到期自動清理的機制。首先&#xff0c;我需要回憶一下Dexie.js的基本用法&#xff0c;以及IndexedDB的特性。IndexedDB是瀏覽器中的一種非關系型數據庫&#xff0c…

【MySQL篇】索引特性,索引的工作原理以及索引的創建與管理

目錄 一&#xff0c;初識索引 二&#xff0c;MySQL與磁盤交互的基本單位 三&#xff0c;MySQL中數據文件的特性 四&#xff0c;理解page和索引 五&#xff0c;聚簇索引和非聚簇索引 六&#xff0c;索引操作 查詢索引 創建主鍵索引 唯一索引的創建 普通索引的創建 全文…

springboot項目啟動常見的問題以及配置以及一些使用技巧

1.配置倉庫 這里要把xml文件從國外的鏡像源改成國內的鏡像源。改鏡像源可以查看這篇文章 點擊查看 2.更改文件類型 方法一&#xff1a;右鍵文件找到Mark Dircetory as可以更改文件類型 方法二&#xff1a; 3.springboot本地Maven倉庫的位置 4.pom.xml文件報紅錯誤怎么辦 這…

【初探數據結構】二叉樹的順序結構——堆的實現詳解(上下調整算法的時間復雜度分析)

&#x1f4ac; 歡迎討論&#xff1a;在閱讀過程中有任何疑問&#xff0c;歡迎在評論區留言&#xff0c;我們一起交流學習&#xff01; &#x1f44d; 點贊、收藏與分享&#xff1a;如果你覺得這篇文章對你有幫助&#xff0c;記得點贊、收藏&#xff0c;并分享給更多對數據結構感…

流量分析2

一&#xff0c;webshell流量 [GKCTF 2021]簽到 先看協議分級&#xff0c;大部分是tcp&#xff0c;里面有http的基于的行文本數據占了很大的比重&#xff0c;看看里面有什么 過濾http的流量 點擊一條流量&#xff0c;里面的內容進去后面有基于行的文本數據&#xff0c; 先解he…

頭歌實踐教學平臺--【數據庫概論】--SQL

一、表結構與完整性約束的修改(ALTER) 1.修改表名 USE TestDb1; alter table your_table rename TO my_table; 2.添加與刪除字段 #語句1&#xff1a;刪除表orderDetail中的列orderDate alter table orderDetail drop orderDate; #語句2&#xff1a;添加列unitPrice alter t…

在 React 中,組件之間傳遞變量的常見方法

目錄 1. **通過 Props 傳遞數據**2. **通過回調函數傳遞數據**3. **通過 Context API 傳遞數據**4. **通過 Redux 管理全局狀態**5. **通過事件總線&#xff08;如 Node.js 的 EventEmitter&#xff09;**6. **通過 Local Storage / Session Storage**7. **通過 URL 查詢參數傳…

Redis + 布隆過濾器解決緩存穿透問題

Redis 布隆過濾器解決緩存穿透問題 1. Redis 布隆過濾器解決緩存穿透問題 &#x1f4cc; 什么是緩存穿透&#xff1f; 緩存穿透指的是查詢的數據既不在緩存&#xff0c;也不在數據庫&#xff0c;導致每次查詢都直接訪問數據庫&#xff0c;增加數據庫壓力。 例如&#xff1…

Vue動態添加或刪除DOM元素:購物車實例

Vue 指令系列文章: 《Vue插值:雙大括號標簽、v-text、v-html、v-bind 指令》 《Vue指令:v-cloak、v-once、v-pre 指令》 《Vue條件判斷:v-if、v-else、v-else-if、v-show 指令》 《Vue循環遍歷:v-for 指令》 《Vue事件處理:v-on 指令》 《Vue表單元素綁定:v-model 指令》…

vue h5實現車牌號輸入框

哈嘍&#xff0c;大家好&#xff0c;最近鵬仔開發的項目是學校校內車輛超速方面的統計檢測方面的系統&#xff0c;在開發過程中發現有個小功能&#xff0c;就是用戶移動端添加車牌號&#xff0c;剛開始想著就一個輸入框&#xff0c;提交時正則效驗一下格式就行&#xff0c;最后…