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

面試官:聊聊你對(duì)分庫(kù)分表的理解?

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

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

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

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

1.分庫(kù)分表

首先來(lái)說(shuō),“分庫(kù)分表”不是一個(gè)技術(shù),而是兩個(gè)技術(shù)實(shí)現(xiàn),它分為:

  • 分庫(kù)
  • 垂直分庫(kù)
  • 水平分庫(kù)
  • 分表
  • 垂直分表
  • 水平分表

(1)垂直分庫(kù)

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

(2)水平分庫(kù)

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

(3)垂直分表

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

(4)水平分表

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

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

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

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

  • MyCat
  • Apache Sharding Sphere

Sharding Sphere 相比于 MyCat 來(lái)說(shuō),它的優(yōu)勢(shì)是:

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

3.Sharding Sphere

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

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

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

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


ShardingSphere-JDBC

ShardingSphere-Proxy

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

任意

MySQL/PostgreSQL

連接消耗數(shù)



支持語(yǔ)言

僅 Java

任意

性能

損耗低

損耗略高

無(wú)中心化



責(zé)任編輯:姜華 來(lái)源: 磊哥和Java
相關(guān)推薦

2025-04-09 00:00:00

2020-11-11 10:05:04

數(shù)據(jù)庫(kù)分庫(kù)分表美團(tuán)面試

2021-10-15 09:53:12

工具

2024-01-17 14:42:24

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

2022-05-23 08:43:02

BigIntJavaScript內(nèi)置對(duì)象

2021-11-25 10:18:42

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

2021-08-09 07:47:40

Git面試版本

2025-01-13 09:24:32

2022-07-11 08:16:47

NewSQL關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)

2020-12-01 08:47:36

Java異常開發(fā)

2025-02-21 15:25:54

虛擬線程輕量級(jí)

2024-09-27 15:43:52

零拷貝DMAIO

2020-06-12 15:50:56

options前端服務(wù)器

2022-03-21 09:05:18

volatileCPUJava

2025-03-21 00:00:05

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

2024-10-24 16:14:43

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

2015-08-13 10:29:12

面試面試官

2021-07-05 07:55:11

String[]byte轉(zhuǎn)換

2024-08-27 12:36:33

2020-08-17 07:40:19

消息隊(duì)列
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 中文字幕国产视频 | 欧美午夜视频 | 亚洲人成人一区二区在线观看 | 视频一区二区在线观看 | 久久久蜜桃一区二区人 | 精品国产乱码久久久久久牛牛 | 欧美激情免费在线 | 久久久久国产 | 日韩电影一区 | 视频在线一区 | 成年人在线 | 九九九视频在线观看 | 精品亚洲一区二区三区四区五区 | 国产激情91久久精品导航 | 成人av电影天堂 | 一区在线观看视频 | 久久久久综合 | 欧美日韩视频网站 | 日韩精品区 | 成人国产精品久久 | 超碰免费观看 | 欧美激情综合五月色丁香小说 | 在线免费亚洲视频 | 狠狠操狠狠操 | 日本成人三级电影 | 成人夜晚看av | 国产精品久久久久久久久久久久午夜片 | 国产一级淫片a直接免费看 免费a网站 | 二区中文 | 亚洲一区免费视频 | 在线播放一区 | 精品在线一区 | 国产亚洲精品精品国产亚洲综合 | 成人二区 | 超碰97人人人人人蜜桃 | 7799精品视频天天看 | 久操福利 | 91福利在线观看 | 欧美99 | 91精品在线看 | 成人在线观看免费 |