版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PostgreSQL
和
MySQL存儲層深度解析存儲與計算
,
引領(lǐng)數(shù)據(jù)處理的發(fā)展PostgReSQL
pk
MySQL
:存儲層對比12PostgReSQL
和
MySQL
存儲層的優(yōu)化3存儲層,我們看重什么?看的見的文件僅僅是文件嗎?看不見的管理者:表空間?2.12.22.331什存儲與計算
,
引領(lǐng)數(shù)據(jù)處理的發(fā)展
?
什么引領(lǐng)著
數(shù)么在引領(lǐng)著數(shù)據(jù)處理技術(shù)的發(fā)展4文件系統(tǒng)
:
只存儲無計算數(shù)據(jù)庫
:
既存儲又計算兩個時代,五個階段存儲的目的是為了計算
分布式數(shù)據(jù)庫
:
分布式實時計算
第一代
Haddop
生態(tài)園
:
分布式非實時計算
武新分布式文件系統(tǒng)
:
對大數(shù)據(jù)存儲單機時代多機協(xié)作時代階段1階段2階段3階段4階段551存儲與計算
,
引領(lǐng)數(shù)據(jù)處理的發(fā)展
存儲與計算的需求
引領(lǐng)什么在引領(lǐng)著數(shù)據(jù)處理技術(shù)的發(fā)展
發(fā)展62PostgReSQL
pk
MySQL
:
存儲層對比存儲層,我們看重什么?看的見的文件僅僅是文件嗎?看不見的管理者:表空間?2.12.22.372.1
存儲層,我們看重什么?存儲層,三大能力1
IO
能力2
穩(wěn)定性3
存儲能力力8比較項PostgreSQLMySQL數(shù)據(jù)管理單位頁(默認8k)區(qū)(每區(qū)默認1M,一次可分配1--4個)物理讀寫單位頁頁使用方式
讀數(shù)據(jù)到緩存區(qū)讀數(shù)據(jù)到緩存區(qū)
預(yù)讀(Read-Ahead)
多范圍讀(Multi-RangeRead)2.1存儲層,我們看重什么?存儲層,三大能力
IO
能力92.1
存儲層,我們看重什么?存儲層,三大能力
穩(wěn)定能力PostgreSQL
與MySQL都能長期穩(wěn)定運行,包括存儲系統(tǒng)長期的穩(wěn)定運行MySQL:Facebook/Google/
淘寶
...PostgreSQL:
騰訊
/Fujitsu/Cisco/NTT
Data..../about/users/
1064-bitsPostgreSQLMySQL數(shù)據(jù)庫的個數(shù)無限制無限制表的個數(shù)無限制無限制(InnoDB限制40億張表)單表的容量無限制理論上無限制(受限于OS)2.1存儲層,我們看重什么?存儲層,三大能力
存儲能力112.1
存儲層,我們看重什么?文件大小受操作系統(tǒng)限制12比較項PostgreSQLMySQL每個表的數(shù)據(jù)文件個數(shù)無數(shù)個1個單個文件最大尺寸默認1G受OS限制單個文件初始大小自動擴展到單個文件最大自動擴展到最大文件在外存的形式filenode.1,filenode.2,etc表名.ibd2.1存儲層,我們看重什么?單表比較132.1存儲層,我們看重什么?PostgreSQL
單表容量示例:單表
2GB*(1024*100
個文件
)
=
200TB/
表空間(
64-bits
機器,實際上限為
2
的
64
次方
)
次方)MySQL
單表容量示例:受操作系統(tǒng)影響
,
單表容量就是外存文件大小MySQL
依賴脫機配置參數(shù)
配置
系統(tǒng)表空間的容量
,
使用不方便且
IO
低效:innodb_data_file_path
=
/ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend
14
實例X
易的相冊庫:150
億記錄,分布在
8
個實例節(jié)點上,單表接近
20
億的記錄,單表
350G
的存儲量X
浪
60
億單表的記錄,單表容量超過
1T2.2看的見的文件僅僅是文件嗎?cReate
tablespace
ts_a
(...)cReate
table
t_a
(…)
…
tablespace
ts_a...
數(shù)據(jù)庫
用戶
SQL
外存數(shù)據(jù)的存儲路徑目錄
+
文件名PostgReSQL/MySQL/...,
神秘的盒子
?152.2看的見的文件僅僅是文件嗎?
--PostgReSQL1
存儲結(jié)構(gòu)2
運行信息162.2看的見的文件僅僅是文件嗎?
--PostgReSQL
存儲結(jié)構(gòu)包括了元
信息和用戶的數(shù)據(jù)
1
存儲結(jié)構(gòu)
2
運行信息
運行信息與數(shù)據(jù)
庫的功能相對應(yīng)172.2看的見的文件僅僅是文件嗎?
--PostgReSQL
用戶
SQL
系統(tǒng)表cReate
tablespace
ts_a
(…)cReate
table
t_a
(…)
…
tablespace
ts_a...select
…
fRom
t_a...
數(shù)據(jù)緩存區(qū)
外存,文件系統(tǒng):
pg_tablesapce
pg_class
pg_attRibutes
Reltablespace
+
Relfilenode
(
+
ReltoastRelid
)
存儲介質(zhì)目錄
-
表空間
-+
文件名
filenoed1/filenode2
18深度挖掘2.2看的見的文件僅僅是文件嗎?
--PostgReSQL
文件中存放系統(tǒng)運行信息、元
數(shù)據(jù)、用戶數(shù)據(jù)
沒有管理
IO
依賴操作系統(tǒng)
表空間級的存儲能
力沒有限制
單個文件大小有限但表的數(shù)據(jù)量沒限制192.2看的見的文件僅僅是文件嗎?
--MySQL202.2看的見的文件僅僅是文件嗎?
--MySQL
1
系統(tǒng)數(shù)據(jù)
2
用戶數(shù)據(jù)212.2看的見的文件僅僅是文件嗎?
--MySQL
參數(shù)控制表空間外存,文件系統(tǒng):t_a.fRm
t_a.ibd.
InnoDBIf
(…){...}FoR
(int
i=1,
i<100,i++){…}
存儲介質(zhì)
用戶
SQL
innodb_file_peR_tablecReate
table
t_a
(…)
…select
…
fRom
t_a...
數(shù)據(jù)緩存區(qū)22stoRage\innobase\include\fil0fil.h:內(nèi)部存儲時,頁的類型,部分定義:系統(tǒng)運行信息與數(shù)據(jù)存放在一起2.2看的見的文件僅僅是文件嗎?
--MySQL#define
FIL_PAGE_INDEX
17855
/*!<
B-tree
node
*/#define
FIL_PAGE_UNDO_LOG
2
/*!<
Undo
log
page
*/#define
FIL_PAGE_INODE
3
/*!<
Index
node
*/#define
FIL_PAGE_IBUF_FREE_LIST
4
/*!<
Insert
buffer
free
list
*/#define
FIL_PAGE_TYPE_ALLOCATED
0
/*!<
Freshly
allocated
page
*/#define
FIL_PAGE_IBUF_BITMAP
5
/*!<
Insert
buffer
bitmap
*/#define
FIL_PAGE_TYPE_SYS
6
/*!<
System
page
*/#define
FIL_PAGE_TYPE_TRX_SYS
7
/*!<
Transaction
system
data
*/#define
FIL_PAGE_TYPE_FSP_HDR
8
/*!<
File
space
header
*/#define
FIL_PAGE_TYPE_XDES
9
/*!<
Extent
descriptor
page
*/#define
FIL_PAGE_TYPE_BLOB
10
/*!<
Uncompressed
BLOB
page
*/#define
FIL_PAGE_TYPE_ZBLOB
11
/*!<
First
compressed
BLOB
page
*/
23深度挖掘2.2看的見的文件僅僅是文件嗎?
--MySQL
文件中存放元數(shù)據(jù)、用戶數(shù)據(jù)
對
IO
進行了一
定程度的管理表空間級的存儲能
力受
OS
限制
單個文件大小
依賴
OS24比較項PostgreSQLMySQL系統(tǒng)運行的信息使用獨立的外存文件存放沒有獨立文件存放系統(tǒng)的元數(shù)據(jù)外存文件(global)information_schema用戶的表定義使用系統(tǒng)表,由系統(tǒng)統(tǒng)一存儲表定義直接存放到外存用戶的表數(shù)據(jù)使用外存文件文件外存文件使用IO管理單位頁(物理IO)區(qū)(邏輯IO)2.2看的見的文件僅僅是文件嗎?
--PK252.3看不見的管理者:表空間?
表空間
:
是數(shù)據(jù)庫管理數(shù)據(jù)存儲的方式
(
也許稱作數(shù)據(jù)空間更為合適
)
歷史
:
生于
Oracle
,開花于各個數(shù)據(jù)庫
品種
:
不盡相同
意義
:
數(shù)據(jù)只有被管理起來,才能被高效利用262.3看不見的管理者:表空間?用途
:
1
控制用戶
/
表占用的儲存空間大小,配額式管理數(shù)據(jù)(按對象存儲)
如:表的數(shù)據(jù)容量可控
2
控制數(shù)據(jù)庫所占用的存儲空間大小,配額式管理應(yīng)用的空間(按需存儲)
如:不同應(yīng)用的數(shù)據(jù)容量可控(云數(shù)據(jù)庫中限制數(shù)據(jù)庫的容量)
3
分離日志文件與數(shù)據(jù)文件的存儲,提高數(shù)據(jù)庫性能(按位置存儲)
如:日志文件和數(shù)據(jù)文件分別儲存于不同的物理位置
4
控制數(shù)據(jù)的分布,提高數(shù)據(jù)庫的輸入輸出性能(按數(shù)據(jù)存儲)
如:不同數(shù)據(jù)文件分別存儲于不同的物理位置
5
控制對象管理的粒度(按業(yè)務(wù)邏輯存儲)
如:按表空間進行備份
/
恢復(fù)
272.3看不見的管理者:表空間?282.3看不見的管理者:表空間?
--PostgReSQL表空間的創(chuàng)建
:
CREATE
TABLESPACE
dbspace
LOCATION
'/data/dbs';
分析
:
表空間的名稱
dbspace
對應(yīng)
物理存儲的目錄
/data/dbs表空間的使用
:
CREATE
...
table_name
(
[
{
column_name
data_type
...}...]
)
[
TABLESPACE
dbspace
]
分析
:
表空間的名稱
tdbspace
對應(yīng)
表名
table_name
(也可以是索引名)
292.3看不見的管理者:表空間?
--PostgReSQL表空間的管理
:
1
每個數(shù)據(jù)文件是一個段“
segment”
,一個表可以有無數(shù)個段
2
ALTER
TABLESPACE
name
RENAME
TO
new_name
3
ALTER
TABLESPACE
name
OWNER
TO
new_owner
4
ALTER
TABLESPACE
name
SET
(
tablespace_option
=
value
[,
...
]
)
5
ALTER
TABLESPACE
name
RESET
(
tablespace_option
[,
...
]
)
tablespace_option
:
seq_page_cost/random_page_cost
分析
:
表空間管理方式簡單
302.3看不見的管理者:表空間?
--PostgReSQL
邏輯存儲結(jié)構(gòu)312.3看不見的管理者:表空間?
--MySQL表空間的創(chuàng)建
:
指定用戶的每個表獨立使用表空間:
innodb_file_per_table指定系統(tǒng)使用的表空間的位置
/
屬性
:
innodb_data_home_dirinnodb_data_file_path分析
:MySQL
實例運行中根據(jù)參數(shù)自動管理表空間的使用
:
自
MySQL
5.6
及之后的版本,通過調(diào)整
nnodb_file_per_table
參數(shù),允許每個表擁有獨立的表空間。
分析
:
自動管理
322.3看不見的管理者:表空間?
--MySQL表空間的管理
:
1
通過上述參數(shù)調(diào)整
2
簡單
分析
:
表空間管理方式簡單,不方便動態(tài)切換存儲設(shè)備(通過符號鏈接支持)332.3看不見的管理者:表空間?
--MySQL
邏輯存儲結(jié)構(gòu)342.3看不見的管理者:表空間?
--
實踐中的問題1
動態(tài)增加存儲設(shè)備或數(shù)據(jù)文件?
D
盤滿了,新加的
E
盤能不能繼續(xù)存放
D
盤中
A
表的新數(shù)據(jù)?2
文件的動態(tài)擴展:數(shù)據(jù)量增加導(dǎo)致數(shù)據(jù)文件變大的過程中
產(chǎn)生
IO
等待,有辦法避免嗎?
文件擴展時,產(chǎn)生了
IO
等待,導(dǎo)致數(shù)據(jù)處理速度降低,怎么辦?3
…...352.3文件組
1...…...文件組
n看不見的管理者:表空間?
--MS
SQL
SeRveR
數(shù)據(jù)庫文件組
k表
1表
k表
n存儲層邏輯層36...2.3看不見的管理者:表空間?
--MS
SQL
SeRveRALTER
DATABASE
database_name
<add_or_modify_files>
//
可以增加
/
修改文件|
<add_or_modify_filegroups>
//
可以增加
/
修改文件組{}[;]<add_or_modify_files>::={
ADD
FILE
<filespec>
[
,...n
]
[
TO
FILEGROUP
{
filegroup_name
}
]
//
可以增加文件到文件組...}372.3看不見的管理者:表空間?
--MS
SQL
SeRveR<filespec>::=(
NAME
=
logical_file_name
[
,
NEWNAME
=
new_logical_name
]
[
,
FILENAME
=
{'os_file_name'
|
'filestream_path'
}
]
//
可以換位置(使用新的存儲
/
分布文件)
[
,
SIZE
=
size
[
KB
|
MB
|
GB
|
TB
]
]
//
指定初始大小
文件的大小提前擴展
好,避免文件系統(tǒng)擴展文件時產(chǎn)生的
IO
等待
[
,
MAXSIZE
=
{
max_size
[
KB
|
MB
|
GB
|
TB
]
|
UNLIMITED
}
]
[
,
FILEGROWTH
=
growth_increment
[
KB
|
MB
|
GB
|
TB|
%
]
]
//
可自動擴展文件(存儲空間的配額管理)
[
,
OFFLINE
])<add_or_modify_filegroups>::={
|
ADD
FILEGROUP
filegroup_name
//
可以增加
/
修改文件組
[
CONTAINS
FILESTREAM
]...}
382.3看不見的管理者:表空間?
--MS
SQL
SeRveR區(qū),
Extent
:
區(qū)是表空間管理的基本單位,一個區(qū)包括
8
個物理相連的頁面。
頁面是
IO
的物理單位。392.3看不見的管理者:表空間?
--ORacleCREATE
TABLESPACE
tbs_02
DATAFILE
'diskb:tbs_f02_1.dbf'
SIZE
500K
REUSE
AUTOEXTEND
ON
NEXT
500K
MAXSIZE
100M;ALTER
TABLESPACE
tbs_02
ADD
DATAFILE
'tbs_f02_2.dbf'
//
為指定表空間增加數(shù)據(jù)文件,可以換位置(使用新的存儲
/
分布文件)
SIZE
100K
//
指定初始大小
文件的大小提前擴展
好,避免文件系統(tǒng)擴展文件時產(chǎn)生的
IO
等待
AUTOEXTEND
ON
//
可自動擴展文件(存儲空間的配額管理)
NEXT
10K
MAXSIZE
100K;402.3看不見的管理者:表空間?
--ORacle
extent--
最小空間分配單位
DatabaseSYSTEMTablespacetablespace1tablespace2Segment1Segment3
Extent1
Extent2Segment=FileBlock
Segment2Tablespace41比較項PostgreSQLMySQL動態(tài)增加存儲文件/改變存儲位置不能不能為每個表單獨配置不同的表空間能能數(shù)據(jù)文件的大小可以提前分配不能不能對物理IO進行管理(區(qū))不能能2.3看不見的管理者:表空間?
--
存儲能力
PK423PostgReSQL
和
MySQL
存儲層的優(yōu)化43存儲功能的改進使用方法的改進有益的實踐經(jīng)驗
3.13.23.3比較項PostgreSQLMySQL表空間的管理:改造為完全的DMS(DatabaseManagedSpace)類似Oracle、MSSQLServer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年家庭理財咨詢協(xié)議
- 2024年二人合作事業(yè)協(xié)議書
- 2024年《建筑工程施工合同》工程款支付方式調(diào)整協(xié)議
- 2024年產(chǎn)品定制質(zhì)量保證協(xié)議
- 04「網(wǎng)絡(luò)安全防護」協(xié)議
- 2024年工程貸款與還款協(xié)議
- 2024年工業(yè)廠房建筑施工分包協(xié)議
- 2024年個人借款中介協(xié)議
- 2024年合作代理協(xié)議:共創(chuàng)商業(yè)價值
- 2024年安全監(jiān)控安裝協(xié)議
- 2024年中級經(jīng)濟師(金融)《專業(yè)知識與實務(wù)》考前必刷必練題庫500題(含真題、必會題)
- 大班-數(shù)學(xué)-加號減號-課件(基礎(chǔ)版)
- 小學(xué)五級綜合實踐活動.種植玉米-(16張)ppt
- 初二班家長會課件
- 瓦斯抽放站施工組織設(shè)計(共23頁)
- 數(shù)學(xué)趣味小故事(課堂PPT)
- 江蘇省示范性縣級教師發(fā)展中心建設(shè)標準
- 小學(xué)低年級數(shù)棋教案
- 長鏈、中鏈脂肪乳區(qū)別
- 起重吊裝作業(yè)指導(dǎo)書
- pMD19-T載體說明書
評論
0/150
提交評論