999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

開源數(shù)據(jù)庫數(shù)據(jù)存儲的實(shí)現(xiàn)路徑分析

2016-12-21 11:11:51向華偉
電子技術(shù)與軟件工程 2016年20期
關(guān)鍵詞:數(shù)據(jù)存儲

向華偉

摘 要 文章首先對PostgreSQL開源數(shù)據(jù)庫的特點(diǎn)進(jìn)行了簡要分析,在此基礎(chǔ)上對PostgreSQL開源數(shù)據(jù)庫的數(shù)據(jù)存儲實(shí)現(xiàn)路徑進(jìn)行論述。期望通過本文的研究能夠?qū)Υ龠M(jìn)開源數(shù)據(jù)庫的推廣應(yīng)用有所幫助。

【關(guān)鍵詞】開源數(shù)據(jù)庫 PostgreSQL 數(shù)據(jù)存儲

數(shù)據(jù)庫是一種能夠?qū)?shù)據(jù)進(jìn)行存儲和管理的“倉庫”,它是一個應(yīng)用領(lǐng)域中通用的數(shù)據(jù)處理系統(tǒng),是長期存儲在計(jì)算機(jī)內(nèi)可進(jìn)行共享的數(shù)據(jù)集合。開源數(shù)據(jù)庫是未進(jìn)行加密,源代碼為開放性的數(shù)據(jù)庫,目前主流的開源數(shù)據(jù)庫有MySQL數(shù)據(jù)庫、PostgreSQL數(shù)據(jù)庫、Ingres r3 數(shù)據(jù)庫、MaxDB數(shù)據(jù)庫、InterBase數(shù)據(jù)庫,每個數(shù)據(jù)庫均有其特性。本文以PostgreSQL數(shù)據(jù)庫為對象,重點(diǎn)對其數(shù)據(jù)存儲的實(shí)現(xiàn)路徑進(jìn)行研究。

1 PostgreSQL開源數(shù)據(jù)庫的特點(diǎn)分析

PostgreSQL是一款具有豐富特色的開源數(shù)據(jù)庫管理系統(tǒng),其不但功能齊全,而且還具有商業(yè)級數(shù)據(jù)庫管理系統(tǒng)的特性,在某些方面甚至超越了商業(yè)數(shù)據(jù)庫。PostgreSQL可在各種平臺上應(yīng)用,支持異步Copy、預(yù)寫日志容錯、表空間機(jī)制,同時還支持多種字符編碼,易于擴(kuò)展,在多用戶并發(fā)方面有著極其優(yōu)異的表現(xiàn)。大體上可將PostgreSQL的特性歸納為以下幾個方面:

1.1 開放性

PostgreSQL支持的數(shù)據(jù)類型較多,如IP地址、數(shù)組、幾何圖元、文本、數(shù)值等,同時該數(shù)據(jù)庫還允許用戶自定義正規(guī)的SQL類型。

1.2 可編程性

該數(shù)據(jù)庫能夠?yàn)橛脩籼峁┐罅康腁PI,如OBDC、Libpq等,給用戶的開發(fā)使用提供了條件。

1.3 可定制性

該數(shù)據(jù)庫可以通過多種編程語言來實(shí)現(xiàn)函數(shù)功能,如PHP、Ruby、Java、C++等等。對于數(shù)據(jù)庫而言,函數(shù)又被稱之為存儲過程,它的輸出結(jié)果可以在查詢中當(dāng)做表來使用,這一特點(diǎn)使PostgreSQL具備了可定制的特性。

1.4 索引

在PostgreSQL數(shù)據(jù)庫中,用戶既可以使用數(shù)據(jù)庫內(nèi)置的GIN、Hash表、GiST進(jìn)行索引,也可以自定義索引,GiST作為通用索引的基礎(chǔ)結(jié)構(gòu),其為多種索引策略的實(shí)現(xiàn)提供了支撐。

2 PostgreSQL開源數(shù)據(jù)庫的數(shù)據(jù)存儲實(shí)現(xiàn)路徑

對于PostgreSQL數(shù)據(jù)庫而言,在存儲層的設(shè)計(jì)中,需要重點(diǎn)考慮的問題是應(yīng)通過何種方式存儲對象規(guī)模,尤其是一些大數(shù)據(jù)的存儲。

2.1 數(shù)據(jù)外存的實(shí)現(xiàn)

2.1.1 relation與外部文件的對應(yīng)

用戶是PostgreSQL數(shù)據(jù)庫的使用者,對于這些使用者而言,每一個二維表都是一個邏輯概念,在邏輯當(dāng)中包含了兩部分內(nèi)容,一部分是表定義,另一部分是表數(shù)據(jù)。前者的主要作用是對用戶的邏輯進(jìn)行展示,它需要被數(shù)據(jù)庫系統(tǒng)保存,存放表定義的地方即表空間;后者從物理的角度上講,是以文件的形式存儲在操作系統(tǒng)當(dāng)中,即可存放在系統(tǒng)的表空間當(dāng)中,也可存放在用戶自定義的表空間當(dāng)中。數(shù)據(jù)一般都是以文件的形式被存儲在表空間當(dāng)中的,換言之?dāng)?shù)據(jù)是表空間的物理外在形式。從代碼的角度進(jìn)行分析,可通過relpathbackend函數(shù)對邏輯概念與物理存儲之間的關(guān)系進(jìn)行查看,具體步驟如下:先按照RelFileNode指定的關(guān)系,找出與外存相對應(yīng)的文件或是文件位置,然后根據(jù)入口的第一個參數(shù)mode,拼接出外存文件的路徑,再利用mode中的spcNode的值,判斷應(yīng)當(dāng)在哪個表空間上進(jìn)行物理存儲操作,最后便可得出數(shù)據(jù)的具體存儲位置。

2.1.2 系統(tǒng)relation的存儲

對于PostgreSQL數(shù)據(jù)庫系統(tǒng)而言,它的relation存儲是將數(shù)據(jù)存放在預(yù)先創(chuàng)建的表空間當(dāng)中,這里需要創(chuàng)建兩個表空間,一個是base,另一個是global。

2.2 數(shù)據(jù)內(nèi)存的實(shí)現(xiàn)

從操作系統(tǒng)的角度上講,在PostgreSQL數(shù)據(jù)庫當(dāng)中,數(shù)據(jù)的存儲就是對一些二進(jìn)制的信息進(jìn)行存儲,整個存儲過程無法獲悉文件的內(nèi)容,文件本身的邏輯含義主要取決于應(yīng)用層面,讀入的數(shù)據(jù)會存放于數(shù)據(jù)緩沖區(qū)當(dāng)中,換言之,數(shù)據(jù)的邏輯含義始于緩沖區(qū)。

2.2.1 表數(shù)據(jù)頁存儲

在PostgreSQL開源數(shù)據(jù)庫管理系統(tǒng)當(dāng)中,數(shù)據(jù)的存儲格式主要有以下幾種類型:系統(tǒng)表數(shù)據(jù)、日志文件、用戶表數(shù)據(jù)以及用戶自行創(chuàng)建的數(shù)據(jù)等。由于數(shù)據(jù)對象的創(chuàng)建方式存在一定的差別,以序列和視圖為例,它們的創(chuàng)建并不涉及任何數(shù)據(jù),僅僅是一個單純的定義,而用戶自定義的表則是由定義和數(shù)據(jù)兩部分組成,這些信息在實(shí)際存儲中,會以tuple的形式存儲于數(shù)據(jù)庫系統(tǒng)當(dāng)中,因此,在數(shù)據(jù)庫的存儲格式中,數(shù)據(jù)分為兩個部分,一部分為頁頭,另一部分為tuple數(shù)據(jù)組。根據(jù)這一前提條件,通過對PagaAddltem函數(shù)中l(wèi)ower和upper變量賦值方式的分析,便可獲得tuple的存儲方式。

2.2.2 大數(shù)據(jù)的處理

系統(tǒng)表可用于視圖、序列等定義信息的存儲,每個表都是以元祖的形式存儲在pg_class當(dāng)中。由于每個表均與一個外存文件相對應(yīng),其文件名稱則是以該對象的filenode號命名。Relfilenode的結(jié)構(gòu)如下:

typedef struct RelFileNode

{

Oid spcNode; /*tablepace*/

Oid dbNode; /*database*/

Oid relNode; /*relation*/

}Relfilenode;

從上面這個結(jié)構(gòu)當(dāng)中可以看出,在PostgreSQL數(shù)據(jù)庫系統(tǒng)當(dāng)中,表空間、數(shù)據(jù)庫、關(guān)系標(biāo)識、物理存儲是與該結(jié)構(gòu)唯一對應(yīng)的。如果一個文件當(dāng)中存儲的內(nèi)容過多,在表超過1GB后,這些文件便會被分裂為大小在1GB左右的段,首段的文件名與filenode相同,其余各段則可用filenode1、filenode2、filenode3來表述,由此能夠防止不同操作系統(tǒng)對文件大小的限制。

3 結(jié)論

綜上所述,在大數(shù)據(jù)時代的背景下,開源數(shù)據(jù)庫已經(jīng)逐步成為業(yè)內(nèi)研究的重點(diǎn),尤其是與數(shù)據(jù)庫關(guān)聯(lián)最為密切的數(shù)據(jù)存儲問題,更成為重中之重。本文主要針對主流開源數(shù)據(jù)庫中的PostgreSQL進(jìn)行了分析,并對其數(shù)據(jù)存儲的實(shí)現(xiàn)路徑進(jìn)行了論述,以期能為開源數(shù)據(jù)庫的推廣使用提供幫助。

參考文獻(xiàn)

[1]蔡佳作,歐爾格力.基于PostgreSQL的地理空間數(shù)據(jù)存儲管理方法研究[J].青海師范大學(xué)學(xué)報(自然科學(xué)版),2016(06):67-68.

[2]陳愷萌,盧科,岳麗華.PostgreSQL閃存緩沖區(qū)置換算法擴(kuò)展與性能驗(yàn)證[J].計(jì)算機(jī)科學(xué)與探索,2012(08):54-56.

[3]許彥.基于PostgreSQL存儲引擎的多線程化方法研究與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2012.

[4]董紀(jì)英,燕志偉,梁正玉.SQLite、MySQL、PostgreSQL關(guān)系型數(shù)據(jù)庫管理系統(tǒng)比較[J].電腦編程技巧與維護(hù),2014(07):98-99.

作者單位

云南電網(wǎng)有限責(zé)任公司信息中心 云南省昆明市 650200

猜你喜歡
數(shù)據(jù)存儲
簡單的數(shù)據(jù)修復(fù)
大數(shù)據(jù)時代檔案信息建設(shè)的認(rèn)識和實(shí)踐
淺談電力大數(shù)據(jù)平臺關(guān)鍵技術(shù)研究與應(yīng)用
基于Android開發(fā)的APP數(shù)據(jù)存儲研究
哈希算法在物聯(lián)網(wǎng)數(shù)據(jù)存儲中的應(yīng)用
空難事故跨媒體信息采集與檢索方法的研究
基于STM32的AD采集與SD卡數(shù)據(jù)存儲
淺談信息系統(tǒng)工程和POJO模型組件開發(fā)
基于MongoDB的調(diào)查決策系統(tǒng)數(shù)據(jù)存儲方案設(shè)計(jì)
大型在線式UPS及監(jiān)控系統(tǒng)在中控機(jī)房的應(yīng)用
科技視界(2016年4期)2016-02-22 13:10:37
主站蜘蛛池模板: 久久久久亚洲av成人网人人软件| 国产精品免费露脸视频| 中文字幕第1页在线播| 亚洲无线国产观看| 99久久国产自偷自偷免费一区| 久久精品人妻中文视频| 成人欧美日韩| 亚洲高清日韩heyzo| 大香网伊人久久综合网2020| 亚洲A∨无码精品午夜在线观看| 国产一区二区三区夜色| 成人韩免费网站| 国产精品极品美女自在线网站| 亚洲色图综合在线| 综1合AV在线播放| 色九九视频| 亚洲精品无码高潮喷水A| 呦女亚洲一区精品| 国产乱子伦精品视频| 色婷婷久久| 成人午夜天| 97综合久久| 国产女人在线视频| 午夜天堂视频| 国产在线第二页| 国产噜噜噜| 国产高清又黄又嫩的免费视频网站| 久久人午夜亚洲精品无码区| 久久人体视频| 免费欧美一级| 99热国产在线精品99| 精品国产香蕉在线播出| 丁香六月激情综合| 成人免费黄色小视频| 中字无码av在线电影| 国精品91人妻无码一区二区三区| 成人免费视频一区| 免费中文字幕在在线不卡| 91 九色视频丝袜| 国产美女一级毛片| 国产精品第一区| 国产精品爽爽va在线无码观看| 国产精品视频久| 91精品免费久久久| 国产麻豆精品久久一二三| 重口调教一区二区视频| 国产精品香蕉在线| 亚洲国产清纯| 999精品色在线观看| 欧美、日韩、国产综合一区| 国产AV无码专区亚洲精品网站| 亚洲一区第一页| 一级做a爰片久久毛片毛片| 亚洲日韩图片专区第1页| 色爽网免费视频| 国产浮力第一页永久地址| 免费人成在线观看视频色| 精品福利一区二区免费视频| 国产主播在线一区| 精品国产成人a在线观看| 区国产精品搜索视频| 国产一级做美女做受视频| 亚洲系列无码专区偷窥无码| 97se亚洲| 伊人久久福利中文字幕| 一本大道无码高清| 丁香五月激情图片| 国内老司机精品视频在线播出| 亚洲狠狠婷婷综合久久久久| 亚洲第一香蕉视频| 永久成人无码激情视频免费| 欧美亚洲一区二区三区导航| 91欧美亚洲国产五月天| 国外欧美一区另类中文字幕| 一区二区三区在线不卡免费| 福利姬国产精品一区在线| 国产丝袜精品| 呦女亚洲一区精品| 久久久久88色偷偷| 国产综合网站| 国产成人91精品免费网址在线| 国产精品九九视频|