成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:談?wù)勀銓Ψ謳旆直淼睦斫猓?/h1>

數(shù)據(jù)庫 MySQL
Sharding Sphere JDBC 和 Sharding Sphere Proxy 使用場景分別是啥?ShardingSphere-JDBC 具體實現(xiàn)步驟有哪些?說說它的實現(xiàn)原理?

在 MySQL 集群架構(gòu)中有兩種主流的集群實現(xiàn),一種是讀寫分離,而另外一種則是數(shù)據(jù)分片。所謂的數(shù)據(jù)分片其實就是今天要聊的分庫分表技術(shù)。

分庫分表技術(shù)不但是日常工作中用于解決數(shù)據(jù)庫中的數(shù)據(jù)量會急劇增長,解決單庫單表性能瓶頸的一種方案,更是面試中的高頻知識點。

阿里巴巴的《Java 開發(fā)手冊》中規(guī)定:當(dāng)單表的數(shù)據(jù)超過 500 萬,或單表的大小超過 2GB 時,就要考慮分庫分表了。那么什么是分庫分表呢?

1.分庫分表

首先來說,“分庫分表”不是一個技術(shù),而是兩個技術(shù)實現(xiàn),它分為:

  1. 分庫

垂直分庫

水平分庫

  1. 分表

垂直分表

水平分表

1.1 垂直分庫

垂直分庫是按照業(yè)務(wù)將不同的表拆分到不同的數(shù)據(jù)庫中。例如,在一個電商數(shù)據(jù)庫中的用戶表和訂單表分別存放到不同的數(shù)據(jù)庫中,如下圖所示:

圖片圖片

1.2 水平分庫

水平分庫是將數(shù)據(jù)按照一定的規(guī)則(如用戶 ID 取模、哈希等)分布到不同的數(shù)據(jù)庫中。比如,根據(jù)用戶 ID 對 10 取模,將用戶數(shù)據(jù)分布到 10 個不同的數(shù)據(jù)庫中,每個數(shù)據(jù)庫都保存著完整的數(shù)據(jù)表結(jié)構(gòu),如下圖所示:

圖片圖片

1.3 垂直分表

垂直分表是將一張表按照列的相關(guān)性拆分成多張表。例如,將一個包含大量字段的用戶表,拆分為用戶基本信息表和用戶擴展信息表,如下圖所示:

圖片圖片

1.4 水平分表

水平分表是將一張表的數(shù)據(jù)按照行進行拆分。例如按照用戶 ID 的范圍或者哈希值將數(shù)據(jù)拆分到不同的表中。

圖片圖片

如果搞不清楚什么是垂直分表和什么是水平分表?可以參考一下這幅圖思考一下:圖片

2.技術(shù)實現(xiàn)

分庫分表的主流實現(xiàn)技術(shù)有以下兩種:

  • MyCat
  • Apache Sharding Sphere

Sharding Sphere 相比于 MyCat 來說,它的優(yōu)勢是:

  • 功能更多:除了讀寫分離和分庫分表之外,還提供了數(shù)據(jù)加密、流量質(zhì)量、數(shù)據(jù)遷移等功能。
  • 社區(qū)更活躍度和生態(tài)更好:Sharding Sphere 擁有活躍的社區(qū)和豐富的文檔,生態(tài)系統(tǒng)較為完善,有更多的用戶和開發(fā)者參與。
  • 靈活性和擴展性:Sharding Sphere 靈活性更高,擴展性也更好,它可以方便地與其他技術(shù)集成,這方便 MyCat 支持的比較有限。

3.Sharding Sphere

Sharding Sphere 最早是當(dāng)當(dāng)網(wǎng)的內(nèi)部框架,后面捐獻(xiàn)給了 Apache,目前也是分庫分表的主流技術(shù)實現(xiàn)方案,在 Sharding Sphere 中有兩種分庫分表的技術(shù)實現(xiàn):

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

圖片圖片

  • Sharding Sphere Proxy:定位為透明化的數(shù)據(jù)庫代理端,通過實現(xiàn)數(shù)據(jù)庫二進制協(xié)議,對異構(gòu)語言提供支持。 目前提供 MySQL 和 PostgreSQL 協(xié)議,透明化數(shù)據(jù)庫操作,對 DBA 更加友好。

圖片圖片

它們的區(qū)別如下:


ShardingSphere-JDBC

ShardingSphere-Proxy

支持?jǐn)?shù)據(jù)庫

任意

MySQL/PostgreSQL

連接消耗數(shù)

支持語言

僅 Java

任意

性能

損耗低

損耗略高

無中心化

課后思考

Sharding Sphere JDBC 和 Sharding Sphere Proxy 使用場景分別是啥?ShardingSphere-JDBC 具體實現(xiàn)步驟有哪些?說說它的實現(xiàn)原理?

責(zé)任編輯:武曉燕 來源: 磊哥和Java
相關(guān)推薦

2024-07-25 18:20:03

2020-11-11 10:05:04

數(shù)據(jù)庫分庫分表美團面試

2025-02-21 15:25:54

虛擬線程輕量級

2024-09-27 15:43:52

零拷貝DMAIO

2022-03-21 09:05:18

volatileCPUJava

2024-10-24 16:14:43

數(shù)據(jù)傳輸CPU零拷貝

2025-03-21 00:00:05

Reactor設(shè)計模式I/O 機制

2021-10-15 09:53:12

工具

2024-08-27 12:36:33

2024-06-13 08:01:19

2019-07-26 06:42:28

PG架構(gòu)數(shù)據(jù)庫

2024-10-12 16:25:12

2024-08-26 14:52:58

JavaScript循環(huán)機制

2024-09-26 16:01:52

2021-11-05 10:07:13

Redis哈希表存儲

2024-01-17 14:42:24

分庫分表數(shù)據(jù)庫數(shù)據(jù)分片

2024-08-23 09:02:56

2021-11-25 10:18:42

RESTfulJava互聯(lián)網(wǎng)

2021-08-09 07:47:40

Git面試版本

2025-01-13 09:24:32

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲精品日韩视频 | 国产精品国产精品国产专区不卡 | 久久精品99 | 日日操夜夜操天天操 | 国产视频一区二区三区四区五区 | 亚洲国产一区在线 | 国产日产久久高清欧美一区 | av成年人网站 | 精品久久网 | 久久精品网 | 久久九九免费 | 国产h视频 | 91 在线| 欧美日韩国产欧美 | www.久久久久久久久久久久 | 欧美日韩中文在线 | 黄色a视频 | 欧美一级在线观看 | 欧美精品一区在线 | 欧美精品在线免费观看 | 成人在线不卡 | 色婷婷一区二区三区四区 | 日本韩国欧美在线观看 | 九色国产 | 日批的视频| 国产精品久久久久久吹潮 | 婷婷综合| 国产一区二区三区 | 日韩欧美在线一区 | 亚洲综合在线一区二区 | 黄色视频a级毛片 | 亚洲国产情侣 | 亚洲欧美另类在线 | 国产精品无码久久久久 | 久久久久久av | 国产专区视频 | 日韩精品成人 | 国产线视频精品免费观看视频 | 夜夜骚视频 | 狠狠狠干 | 国产人成在线观看 |