亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

sharding - 數據庫分庫切表后Java后端代碼實現以及最佳實踐

瀏覽:96日期:2023-10-30 14:46:42

問題描述

現在業務中由于一些表越來越大,read的時候壓力很大(write的需求比較小),所以在數據庫端決定把一些數據量特別大的表切表, 但是在后端代碼中有很多代碼/query需要做join這些表,請問這樣的情況下大家是怎么樣解決的?

比如我們現在有 SampleTable 有大概1億條數據,我們根據邏輯切成了大概16個不同的表:SampleTable 1,SampleTable2...SampleTable31,以前代碼中有query 類似于:

select * from SampleTable join test_table

現在需要執行這樣的query 多次然后把數據聚合起來做為返回結果嗎?

select * from SampleTable1 join test_table

有沒有更好的方法或者library推薦?有沒有什么beset practice或者sample code?

如果之后我們要多個表拆分到不同的database server上,是否在后端代碼得加上不同db 的數據庫連接?

數據庫Sharding的基本思想和切分策略這篇文章更多的是數據庫切分的策略,是否有人能提供下實際的項目code sample?Database sharding and JPAwhat-to-do-instead-of-sql-joins-while-scaling-horizontally

stackoverflow 上的一些答案

問題解答

回答1:

可以考慮引入數據庫中間件sharding-jdbc client級別mycat-server server級別

回答2:

朋友介紹 Spark 不錯,支持 SQl 式的查詢,1 億條數據 0.5 秒左右返回結果

回答3:

只針對目前我們項目中的情況: 在分表時根據hash算法落到特定表,然后取的時候先根據算法獲取數據的分布位置,然后就是正常的select了

回答4:

不建議連表查詢1.數據庫資源比較寶貴,連表查詢會占用大量的內存,導致數據庫性能下降2.不支持數據在多個數據庫實例,分庫情況無法處理,擴展性較差

通用做法是將連表查詢,查分成多個單表查詢,然后將結果在應用中匯總。1.能夠上述連表查詢的問題2.多次查詢也可以在程序中對每一次查詢的中間結果做處理,這是一個靈活性。3.應用也可以隨時擴展,更加靈活

如果是離線場景,建議使用MR(mapreduce)框架來處理,例如:hadoop等,相應的,需要將數據寫入到hdfs上。

回答5:

http://blog.csdn.net/tianyale...詳解分庫分表

標簽: java
相關文章:
主站蜘蛛池模板: 性生活视频网 | 国产在线综合一区二区三区 | 国产成人精品日本亚洲网站 | 亚洲首页 | 久久亚洲国产高清 | 国产女精品视频在ktv | 欧美国产成人免费观看永久视频 | 经典香港a毛片免费观看 | 成人免费无遮挡做性视频 | 精品国产高清毛片 | 日韩免费观看的一级毛片 | 日韩视频免费在线播放 | 99亚洲精品高清一二区 | 美国人和动物xxx | 首页国产精品萌社区 | 一级a性色生活片毛片 | 久久草影视 | 91丝袜美腿高跟国产极品老师 | 精精国产xxxx视频在线播放器 | 国产精品久久久久一区二区 | 日韩中文字幕在线免费观看 | 国产农村妇女成人精品 | 国产黄色片在线看 | 国产亚洲精品久久午夜 | 美国三级网站 | 香蕉视频在线免费看 | 久久草精品视频 | 92国产福利午夜757小视频 | 免费国产成人高清在线观看不卡 | 91麻豆精品国产综合久久久 | 9191精品国产免费不久久 | 中文日韩欧美 | 免费人成网站尤物在线观看 | 亚洲视频不卡 | 亚洲不卡在线 | 国产三级做爰在线观看视频 | 欧美日韩国产中文字幕 | 久草视频中文在线 | 国产成人a一在线观看 | 国产高清在线精品一区αpp | 亚洲视频1区 |