成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

mysql - 分庫分表、分區(qū)、讀寫分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來哪些效率或者其他方面的好處

瀏覽:148日期:2022-06-13 15:15:10

問題描述

問題解答

回答1:用處 / 功能

讀寫分離:提高數(shù)據(jù)庫的讀性能。分庫、垂直分表:分散系統(tǒng)負(fù)載,讓原來一臺(tái)機(jī)器做的事,變成幾臺(tái)機(jī)器來做。水平分表、分區(qū):縮小索引大小,使查找更快。

使用場(chǎng)景

讀寫分離:打開一個(gè)帖子內(nèi)容頁,需要select帖子表,和帖子評(píng)論表,每個(gè)耗時(shí)10ms的話。每秒1000次查詢就是這個(gè)數(shù)據(jù)庫的極限了。也就是說,這個(gè)論壇只能承載每秒500次訪問。那么我們就可以對(duì)這個(gè)數(shù)據(jù)庫做讀寫分離,來成倍提高數(shù)據(jù)庫的讀性能。

水平分表:交易歷史,這種表。因?yàn)楹苌俨樵?年前的信息。所以,我們可以按年份來進(jìn)行水平分表。將今年的表優(yōu)先對(duì)待。就減少了要查詢的表的大小。

分庫:如果我們的系統(tǒng)非常大了,功能非常多,就會(huì)有很多類型的數(shù)據(jù)庫表,例如營(yíng)銷活動(dòng)的表,和用戶賬號(hào)的表是沒有關(guān)聯(lián)的,那么我們就可以將他們分到兩個(gè)數(shù)據(jù)庫中,然后放到不同的獨(dú)立的數(shù)據(jù)庫服務(wù)器,就能使數(shù)據(jù)庫吞吐量成倍增加。

垂直分表:典型的應(yīng)用場(chǎng)景是在文章列表這樣的場(chǎng)景,一般來講,我們的文章表會(huì)有title、userId、Content等字段,其中的Content字段一般是Text或者LongText類型,而其它的字段都是固定長(zhǎng)度的數(shù)據(jù)類型。我們知道一個(gè)數(shù)據(jù)庫優(yōu)化規(guī)則是:

如果一個(gè)表的所有字段都是固定長(zhǎng)度類型的,那么它就是定長(zhǎng)表,定長(zhǎng)表比動(dòng)態(tài)長(zhǎng)度表查詢性能要高

那么,我們就可以使用垂直分表來將文章表分成文章表和文章內(nèi)容表。于是文章列表頁面所需的查詢,就只需要查詢一張定長(zhǎng)表了。

未完待續(xù)

回答2:

數(shù)據(jù)庫的表的記錄在超過一定數(shù)量后性能下降嚴(yán)重,因此要維持單表數(shù)據(jù)量不過高,分表。

數(shù)據(jù)庫程序是通過大量IO存取數(shù)據(jù),為了使用多臺(tái)廉價(jià)機(jī)器同時(shí)服務(wù)以提高性能而不用購(gòu)買單臺(tái)超級(jí)機(jī)器,分庫。

同樣是因?yàn)镮O,一般讀比寫數(shù)量多,單獨(dú)提供讀減輕寫的壓力,還提供了一定的冗余抗災(zāi)能力。