自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL單表數(shù)據(jù)不要超過500萬行:是經(jīng)驗數(shù)值,還是黃金鐵律?

數(shù)據(jù)庫 MySQL
今天,探討一個有趣的話題:MySQL 單表數(shù)據(jù)達到多少時才需要考慮分庫分表?有人說 2000 萬行,也有人說 500 萬行。那么,你覺得這個數(shù)值多少才合適呢?

 [[276385]]

今天,探討一個有趣的話題:MySQL 單表數(shù)據(jù)達到多少時才需要考慮分庫分表?有人說 2000 萬行,也有人說 500 萬行。那么,你覺得這個數(shù)值多少才合適呢?

[[276386]] 

曾經(jīng)在中國互聯(lián)網(wǎng)技術圈廣為流傳著這么一個說法:MySQL 單表數(shù)據(jù)量大于 2000 萬行,性能會明顯下降。事實上,這個傳聞?chuàng)f最早起源于百度。具體情況大概是這樣的,當年的 DBA 測試 MySQL性能時發(fā)現(xiàn),當單表的量在 2000 萬行量級的時候,SQL 操作的性能急劇下降,因此,結論由此而來。然后又據(jù)說百度的工程師流動到業(yè)界的其它公司,也帶去了這個信息,所以,就在業(yè)界流傳開這么一個說法。

再后來,阿里巴巴《Java 開發(fā)手冊》提出單表行數(shù)超過 500 萬行或者單表容量超過 2GB,才推薦進行分庫分表。對此,有阿里的黃金鐵律支撐,所以,很多人設計大數(shù)據(jù)存儲時,多會以此為標準,進行分表操作。

那么,你覺得這個數(shù)值多少才合適呢?為什么不是 300 萬行,或者是 800 萬行,而是 500 萬行?也許你會說這個可能就是阿里的最佳實戰(zhàn)的數(shù)值吧?那么,問題又來了,這個數(shù)值是如何評估出來的呢?稍等片刻,請你小小思考一會兒。

[[276387]] 

事實上,這個數(shù)值和實際記錄的條數(shù)無關,而與 MySQL 的配置以及機器的硬件有關。因為,MySQL 為了提高性能,會將表的索引裝載到內存中。InnoDB buffer size 足夠的情況下,其能完成全加載進內存,查詢不會有問題。但是,當單表數(shù)據(jù)庫到達某個量級的上限時,導致內存無法存儲其索引,使得之后的 SQL 查詢會產(chǎn)生磁盤 IO,從而導致性能下降。當然,這個還有具體的表結構的設計有關,最終導致的問題都是內存限制。這里,增加硬件配置,可能會帶來立竿見影的性能提升哈。

那么,我對于分庫分表的觀點是,需要結合實際需求,不宜過度設計,在項目一開始不采用分庫與分表設計,而是隨著業(yè)務的增長,在無法繼續(xù)優(yōu)化的情況下,再考慮分庫與分表提高系統(tǒng)的性能。對此,阿里巴巴《Java 開發(fā)手冊》補充到:如果預計三年后的數(shù)據(jù)量根本達不到這個級別,請不要在創(chuàng)建表時就分庫分表。那么,回到一開始的問題,你覺得這個數(shù)值多少才合適呢?我的建議是,根據(jù)自身的機器的情況綜合評估,如果心里沒有標準,那么暫時以 500 萬行作為一個統(tǒng)一的標準,相對而言算是一個比較折中的數(shù)值。

 

責任編輯:武曉燕 來源: 服務端思維
相關推薦

2019-06-23 15:04:42

MySQL單表數(shù)據(jù)數(shù)值

2024-07-24 16:25:02

2019-06-27 16:40:30

MySQL單表數(shù)據(jù)數(shù)據(jù)庫

2018-12-05 09:20:02

MySQL數(shù)據(jù)庫索引

2009-08-20 16:34:50

Linux源代碼紅帽Linux內核

2022-10-31 08:29:37

MySQL單表參數(shù)

2023-11-01 21:45:59

數(shù)據(jù)庫MySQL單表

2011-05-03 09:10:12

項目管理程序員

2021-03-02 13:56:24

Linux 5.12代碼驅動

2019-04-19 13:01:12

Java代碼庫Go代碼移植

2025-02-10 09:58:48

2024-03-04 00:01:00

鎖表鎖行MySQL

2019-01-03 09:29:15

Linux 系統(tǒng) 數(shù)據(jù)

2023-06-28 14:18:06

2009-07-21 08:44:14

微軟Linux內核開源操作系統(tǒng)

2010-09-27 11:55:47

SQL索引

2015-09-01 16:26:18

Linux內核

2020-05-27 14:10:50

代碼開發(fā)工具

2020-08-17 17:10:54

機器學習聚類開發(fā)

2020-03-10 16:28:31

代碼開發(fā)工具
點贊
收藏

51CTO技術棧公眾號