亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        向華偉

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

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

        數(shù)據(jù)庫是一種能夠?qū)?shù)據(jù)進行存儲和管理的“倉庫”,它是一個應(yīng)用領(lǐng)域中通用的數(shù)據(jù)處理系統(tǒng),是長期存儲在計算機內(nèi)可進行共享的數(shù)據(jù)集合。開源數(shù)據(jù)庫是未進行加密,源代碼為開放性的數(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ù)庫為對象,重點對其數(shù)據(jù)存儲的實現(xiàn)路徑進行研究。

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

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

        1.1 開放性

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

        1.2 可編程性

        該數(shù)據(jù)庫能夠為用戶提供大量的API,如OBDC、Libpq等,給用戶的開發(fā)使用提供了條件。

        1.3 可定制性

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

        1.4 索引

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

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

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

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

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

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

        從操作系統(tǒng)的角度上講,在PostgreSQL數(shù)據(jù)庫當(dāng)中,數(shù)據(jù)的存儲就是對一些二進制的信息進行存儲,整個存儲過程無法獲悉文件的內(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ù)兩部分組成,這些信息在實際存儲中,會以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)研究的重點,尤其是與數(shù)據(jù)庫關(guān)聯(lián)最為密切的數(shù)據(jù)存儲問題,更成為重中之重。本文主要針對主流開源數(shù)據(jù)庫中的PostgreSQL進行了分析,并對其數(shù)據(jù)存儲的實現(xiàn)路徑進行了論述,以期能為開源數(shù)據(jù)庫的推廣使用提供幫助。

        參考文獻

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

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

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

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

        作者單位

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

        猜你喜歡
        數(shù)據(jù)存儲
        簡單的數(shù)據(jù)修復(fù)
        大數(shù)據(jù)時代檔案信息建設(shè)的認(rèn)識和實踐
        淺談電力大數(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è)計
        大型在線式UPS及監(jiān)控系統(tǒng)在中控機房的應(yīng)用
        科技視界(2016年4期)2016-02-22 13:10:37
        巨乳av夹蜜桃站台蜜桃机成人| 精品人妻一区二区三区视频| 一本大道道久久综合av| 性xxxx18免费观看视频| 青草视频在线播放| 草莓视频成人| 九九99国产精品视频| 国产高清一区在线观看| 五月激情四射开心久久久| 婷婷色婷婷开心五月四| 日日婷婷夜日日天干| 亚洲成a人片在线观看天堂无码 | 综合网自拍| 白白色发布在线播放国产| 国产伦理自拍视频在线观看| 亚洲第一大av在线综合| 性av一区二区三区免费| 十八禁视频网站在线观看| 精品少妇爆乳无码av无码专区| 一本色道av久久精品+网站 | 国产一区二区三区口爆在线| 国产视频自拍一区在线观看| 又粗又硬又大又爽免费视频播放| 少妇邻居内射在线| 欧美三级超在线视频| 日本久久精品国产精品| 69精品国产乱码久久久| 午夜免费视频| 日本又黄又爽gif动态图| 囯产精品无码va一区二区| 日本激情久久精品人妻热| 精品高朝久久久久9999| 无码尹人久久相蕉无码| 亚洲一区综合精品狠狠爱| 成人性生交c片免费看| 国产一区二区三区av免费| 又黄又爽又无遮挡免费的网站| 国精产品一区二区三区| JIZZJIZZ国产| 性感的小蜜桃在线观看| 亚洲一区二区三区内裤视|