偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

番外篇:國產(chǎn)數(shù)據(jù)庫直方圖能力對比

原創(chuàng)
數(shù)據(jù)庫 其他數(shù)據(jù)庫
近期看到某群里關(guān)于數(shù)據(jù)庫直方圖的討論,不禁回想起剛學(xué)習(xí) Oracle 的時(shí)候,為直方圖的設(shè)計(jì)而感嘆。直方圖可以說是優(yōu)化器的基礎(chǔ),對于數(shù)據(jù)分布不均衡的場景下制定出合理的執(zhí)行計(jì)劃至關(guān)重要。

近期看到某群里關(guān)于數(shù)據(jù)庫直方圖的討論,不禁回想起剛學(xué)習(xí) Oracle 的時(shí)候,為直方圖的設(shè)計(jì)而感嘆。直方圖可以說是優(yōu)化器的基礎(chǔ),對于數(shù)據(jù)分布不均衡的場景下制定出合理的執(zhí)行計(jì)劃至關(guān)重要。那么國產(chǎn)數(shù)據(jù)庫這方面又如何呢?這里針對幾種常見的國產(chǎn)數(shù)據(jù)庫的直方圖能力看看能力如何。

1. 直方圖的前世今生

在開始說明國產(chǎn)數(shù)據(jù)庫直方圖能力之前,先來回顧下直方圖的概念,并以經(jīng)典數(shù)據(jù)庫Oracle為代表進(jìn)行說明下。

1)直方圖概念

直方圖是數(shù)據(jù)庫用來判斷列中數(shù)據(jù)分布情況的一種統(tǒng)計(jì)信息,屬于列的統(tǒng)計(jì)信息。如果數(shù)據(jù)分布不均勻,查詢優(yōu)化器需要額外的信息才能做出正確的估算。直方圖正是數(shù)據(jù)庫為查詢優(yōu)化器提供更精確的成本估計(jì)而設(shè)計(jì)的一種直方圖數(shù)據(jù)。其原理是假定存在n個(gè)桶(buckets),每個(gè)桶代表一個(gè)取值或者一個(gè)取值范圍,將列中不同的值放入與之對應(yīng)的桶中,通過這些桶的統(tǒng)計(jì)來得到列上數(shù)據(jù)分布的情況。

2)直方圖分類

基于頻率的直方圖(frequency histogram)

當(dāng)列的唯一值數(shù)量小于或等于桶允許的最大值(254)時(shí),數(shù)據(jù)庫會使用基于頻率的直方圖。每個(gè)值將會占據(jù)一個(gè)桶。每個(gè)桶的高低代表每個(gè)值出現(xiàn)的次數(shù)。

1.png1.png

基于高度的直方圖(height-balanced histogram)

當(dāng)列的唯一值數(shù)量大于桶數(shù)時(shí),數(shù)據(jù)庫會采用基于高度的直方圖反映數(shù)據(jù)分布,每個(gè)bucket容納相同數(shù)量的值。

2.png2.png

其他變體

處理上述直方圖類型外,還有為了反饋更“大眾”數(shù)據(jù)的TopN直方圖,滿足更準(zhǔn)確數(shù)據(jù)的混合直方圖等等。

3)Oracle 直方圖發(fā)展

Oracle 最早在7.3版本引入直方圖,但直到 Oracle 8i 版本后才逐漸成熟并廣泛使用。下表以作為常見的11g版本為分界,對比總結(jié)了之前與之后直方圖的功能演進(jìn)。從下面這一表格中可見直方圖的發(fā)展策略,一方面是支持更為多樣的直方圖類型,一方面是增加桶數(shù),滿足更為精準(zhǔn)的數(shù)據(jù)描述,還有就是在文本處理、生成策略等方面的改進(jìn)。這些也指導(dǎo)了國產(chǎn)數(shù)據(jù)庫對直方圖能力的支持。

3.png3.png

2. 國產(chǎn)數(shù)據(jù)庫直方圖能力總結(jié)

下面列舉了幾種常見的國產(chǎn)數(shù)據(jù)庫直方圖的能力,并與Oracle、MySQL加以比較。初步感覺,各國產(chǎn)數(shù)據(jù)庫都支持了直方圖能力,但支持范圍不同,有些支持更全面些。此外,很多國產(chǎn)數(shù)據(jù)庫都將直方圖能力作為缺省的統(tǒng)計(jì)信息來收集,這點(diǎn)與Oracle 11g不同。

圖片

1)各數(shù)據(jù)庫直方圖直方圖能力

MySQL

MySQL 從8.0.19版本開始引入了直方圖功能,主要用于優(yōu)化查詢性能,特別是在無索引列或數(shù)據(jù)分布不均勻的場景下。MySQL支持兩種直方圖類型,由系統(tǒng)自動選擇:一是等寬直方圖, 每個(gè)桶存儲單個(gè)值及其頻率,適用于離散值較少的列(如枚舉類型);一是等高直方圖,每個(gè)桶存儲值的范圍、頻率和累積分布,適用于連續(xù)值或分布范圍較大的列。當(dāng)桶數(shù)量(WITH N BUCKETS)不小于列的唯一值數(shù)量時(shí),生成等寬直方圖;否則生成等高直方圖。

DM

5.png5.png

KingBase

6.png6.png

YashanDB

7.png7.png

OceanBase

8.png8.png

2)測試:是否采集直方圖對基數(shù)評估影響

下面針對部分國產(chǎn)數(shù)據(jù)庫做了直方圖的測試。這里構(gòu)造了一張表,包含10000條記錄,兩個(gè)字段FNUM、HNUM分別對應(yīng)100個(gè)和1000個(gè)不同值。為了構(gòu)造傾斜,還將500條數(shù)據(jù)修改為9999來表示大基數(shù)的數(shù)值。在收集直方圖時(shí),統(tǒng)一使用200個(gè)桶來進(jìn)行測試。下面表格標(biāo)題欄[]里為實(shí)際記錄數(shù),單元格內(nèi)為執(zhí)行計(jì)劃中反饋預(yù)估行數(shù)。從各家執(zhí)行情況來看,收集直方圖后的評估還是很準(zhǔn)確的。

9.png9.png

責(zé)任編輯:武曉燕 來源: 韓鋒頻道
相關(guān)推薦

2025-08-08 07:30:49

數(shù)據(jù)數(shù)據(jù)庫閃回

2025-03-28 07:33:09

數(shù)據(jù)庫AI助手設(shè)計(jì)

2025-04-23 07:31:14

2025-10-11 07:35:14

2025-09-30 07:32:06

2016-10-19 19:03:18

javascriptes6React Nativ

2012-09-11 11:29:25

2011-11-04 14:07:40

存儲

2011-03-11 09:14:18

國產(chǎn)數(shù)據(jù)庫

2011-03-11 09:26:13

2024-04-16 08:08:54

DTC國產(chǎn)庫產(chǎn)品

2025-04-08 06:00:00

2023-03-31 17:02:28

2011-03-11 12:51:48

國產(chǎn)數(shù)據(jù)庫安全

2023-03-06 21:19:19

2022-10-21 07:07:33

TiDBHTAP數(shù)據(jù)庫

2025-01-09 07:30:49

SQL能力評測

2012-03-16 09:29:47

國產(chǎn)數(shù)據(jù)庫

2023-12-15 07:34:56

分布式數(shù)據(jù)庫數(shù)據(jù)庫租戶軟件架構(gòu)

2011-05-24 10:46:21

國產(chǎn)數(shù)據(jù)庫安全
點(diǎn)贊
收藏

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