日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库水平分割_数据库的水平分割和垂直分割

發布時間:2023/12/31 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库水平分割_数据库的水平分割和垂直分割 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在數據庫操作中,我們常常會聽說這兩個詞語:水平分割和垂直分割。那么到底什么是數據庫的水平分割,什么是數據庫的垂直分割呢?本文我們就來介紹一下這部分內容。

1、水平分割:

按記錄進分分割,不同的記錄可以分開保存,每個子表的列數相同。

水平分割通常在下面的情況下使用:

A 表很大,分割后可以降低在查詢時需要讀的數據和索引的頁數,同時也降低了索引的層數,提高查詢速度。

B 表中的數據本來就有獨立性,例如表中分別記錄各個地區的數據或不同時期的數據,特別是有些數據常用,而另外一些數據不常用。

C需要把數據存放到多個介質上。

例如法規表law就可以分成兩個表active-law和 inactive-law。activea-authors表中的內容是正生效的法規,是經常使用的,而inactive-law表則使已經作廢的法規,不常被查詢。水平分割會給應用增加復雜度,它通常在查詢時需要多個表名,查詢所有數據需要union操作。在許多數據庫應用中,這種復雜性會超過它帶來的優點,因為只要索引關鍵字不大,則在索引用于查詢時,表中增加兩到三倍數據量,查詢時也就增加讀一個索引層的磁盤次數。

2、垂直分割:

按列進行分割,即把一條記錄分開多個地方保存,每個子表的行數相同。

把主碼和一些列放到一個表,然后把主碼和另外的列放到另一個表中。如果一個表中某些列常用,而另外一些列不常用,則可以采用垂直分割,另外垂直分割可以使得數據行變小,一個數據頁就能存放更多的數據,在查詢時就會減少I/O 次數。其缺點是需要管理冗余列,查詢所有數據需要join操作。

例如有表T1

id? name? qty

--------------

1? p1??? 10

2? p2??? 20

3? p3??? 30

4? p4??? 40

......

......

垂直分割就是按列進行分割,即把一條記錄分開多個地方保存,每個子表的行數相同。

例如表T1,可以把id和name放到數據文件p1,把qty放到數據文件p2。

水平分割就是按記錄進分分割,不同的記錄可以分開保存,每個子表的列數相同。

像表T1,可以把id為單數的放到數據文件P1,雙數的放到數據文件P2。

表散列與水平分割相似,但沒有水平分割那樣的明顯分割界限,它由哈希函數和鍵值決定一條記錄的保存文件,這樣是為了IO更加均衡。

關于數據庫的垂直分割與水平分割的知識就介紹到這里了,希望本次的介紹能夠對您有所收獲!

http://database.51cto.com/art/201108/282431.htm

數據庫水平拆分和垂直拆分區別(以mysql為例)

案例:

簡單購物系統暫設涉及如下表:

1.產品表(數據量10w,穩定)

2.訂單表(數據量200w,且有增長趨勢)

3.用戶表 (數據量100w,且有增長趨勢)

以mysql為例講述下水平拆分和垂直拆分,mysql能容忍的數量級在百萬靜態數據可以到千萬

垂直拆分:

解決問題:

表與表之間的io競爭

不解決問題:

單表中數據量增長出現的壓力

方案:

把產品表和用戶表放到一個server上

訂單表單獨放到一個server上

水平拆分:

解決問題:

單表中數據量增長出現的壓力

不解決問題:

表與表之間的io爭奪

方案:

用戶表通過性別拆分為男用戶表和女用戶表

訂單表通過已完成和完成中拆分為已完成訂單和未完成訂單

產品表 未完成訂單放一個server上

已完成訂單表盒男用戶表放一個server上

女用戶表放一個server上(女的愛購物 哈哈)

總結

以上是生活随笔為你收集整理的mysql数据库水平分割_数据库的水平分割和垂直分割的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。