千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 為什么說“對于傳統(tǒng)關(guān)系型數(shù)據(jù)庫來說,硬盤I/O是一個(gè)很大的瓶頸”?

為什么說“對于傳統(tǒng)關(guān)系型數(shù)據(jù)庫來說,硬盤I/O是一個(gè)很大的瓶頸”?

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-13 08:38:57 1697157537

一、說“對于傳統(tǒng)關(guān)系型數(shù)據(jù)庫來說,硬盤I/O是一個(gè)很大的瓶頸”的原因

1、機(jī)械結(jié)構(gòu)限制

硬盤由一片或多片鏡面圓盤組成,圓盤上的磁頭隨著數(shù)據(jù)讀寫而在盤片上移動,因此會受到機(jī)械限制,I/O速度會顯著降低。

2、磁盤尋道和旋轉(zhuǎn)

在進(jìn)行讀寫操作時(shí),硬盤需要先從盤片上找到所需數(shù)據(jù)的位置(尋道),然后等待數(shù)據(jù)旋轉(zhuǎn)到處于磁頭下方的位置,才能開始讀寫(旋轉(zhuǎn)延遲)。

3、數(shù)據(jù)量大

隨著數(shù)據(jù)量的增大,磁盤I/O的負(fù)載也相應(yīng)增加。當(dāng)系統(tǒng)需要處理大量數(shù)據(jù)時(shí),磁盤I/O速度的瓶頸就會體現(xiàn)得更加明顯。

二、關(guān)系型數(shù)據(jù)庫介紹

1、簡介

關(guān)系型數(shù)據(jù)庫,是指采用了關(guān)系模型來組織數(shù)據(jù)的數(shù)據(jù)庫,其以行和列的形式存儲數(shù)據(jù),以便于用戶理解,關(guān)系型數(shù)據(jù)庫這一系列的行和列被稱為表,一組表組成了數(shù)據(jù)庫。用戶通過查詢來檢索數(shù)據(jù)庫中的數(shù)據(jù),而查詢是一個(gè)用于限定數(shù)據(jù)庫中某些區(qū)域的執(zhí)行代碼。關(guān)系模型可以簡單理解為二維表格模型,而一個(gè)關(guān)系型數(shù)據(jù)庫就是由二維表及其之間的關(guān)系組成的一個(gè)數(shù)據(jù)組織。

2、特點(diǎn)

存儲方式:傳統(tǒng)的關(guān)系型數(shù)據(jù)庫采用表格的儲存方式,數(shù)據(jù)以行和列的方式進(jìn)行存儲,要讀取和查詢都十分方便。存儲結(jié)構(gòu):關(guān)系型數(shù)據(jù)庫按照結(jié)構(gòu)化的方法存儲數(shù)據(jù),每個(gè)數(shù)據(jù)表都必須對各個(gè)字段定義好(也就是先定義好表的結(jié)構(gòu)),再根據(jù)表的結(jié)構(gòu)存入數(shù)據(jù),這樣做的好處就是由于數(shù)據(jù)的形式和內(nèi)容在存入數(shù)據(jù)之前就已經(jīng)定義好了,所以整個(gè)數(shù)據(jù)表的可靠性和穩(wěn)定性都比較高,但帶來的問題就是一旦存入數(shù)據(jù)后,如果需要修改數(shù)據(jù)表的結(jié)構(gòu)就會十分困難。存儲規(guī)范:關(guān)系型數(shù)據(jù)庫為了避免重復(fù)、規(guī)范化數(shù)據(jù)以及充分利用好存儲空間,把數(shù)據(jù)按照最小關(guān)系表的形式進(jìn)行存儲,這樣數(shù)據(jù)管理的就可以變得很清晰、一目了然,當(dāng)然這主要是一張數(shù)據(jù)表的情況。如果是多張表情況就不一樣了,由于數(shù)據(jù)涉及到多張數(shù)據(jù)表,數(shù)據(jù)表之間存在著復(fù)雜的關(guān)系,隨著數(shù)據(jù)表數(shù)量的增加,數(shù)據(jù)管理會越來越復(fù)雜。擴(kuò)展方式:由于關(guān)系型數(shù)據(jù)庫將數(shù)據(jù)存儲在數(shù)據(jù)表中,數(shù)據(jù)操作的瓶頸出現(xiàn)在多張數(shù)據(jù)表的操作中,而且數(shù)據(jù)表越多這個(gè)問題越嚴(yán)重,如果要緩解這個(gè)問題,只能提高處理能力,也就是選擇速度更快性能更高的計(jì)算機(jī),這樣的方法雖然可以一定的拓展空間,但這樣的拓展空間一定有非常有限的,也就是關(guān)系型數(shù)據(jù)庫只具備縱向擴(kuò)展能力。查詢方式:關(guān)系型數(shù)據(jù)庫采用結(jié)構(gòu)化查詢語言(即SQL)來對數(shù)據(jù)庫進(jìn)行查詢,SQL早已獲得了各個(gè)數(shù)據(jù)庫廠商的支持,成為數(shù)據(jù)庫行業(yè)的標(biāo)準(zhǔn),它能夠支持?jǐn)?shù)據(jù)庫的CRUD(增加,查詢,更新,刪除)操作,具有非常強(qiáng)大的功能,SQL可以采用類似索引的方法來加快查詢操作。規(guī)范化:在數(shù)據(jù)庫的設(shè)計(jì)開發(fā)過程中開發(fā)人員通常會面對同時(shí)需要對一個(gè)或者多個(gè)數(shù)據(jù)實(shí)體(包括數(shù)組、列表和嵌套數(shù)據(jù))進(jìn)行操作,這樣在關(guān)系型數(shù)據(jù)庫中,一個(gè)數(shù)據(jù)實(shí)體一般首先要分割成多個(gè)部分,然后再對分割的部分進(jìn)行規(guī)范化,規(guī)范化以后再分別存入到多張關(guān)系型數(shù)據(jù)表中,這是一個(gè)復(fù)雜的過程。好消息是隨著軟件技術(shù)的發(fā)展,相當(dāng)多的軟件開發(fā)平臺都提供一些簡單的解決方法,例如,可以利用ORM層(也就是對象關(guān)系映射)來將數(shù)據(jù)庫中對象模型映射到基于SQL的關(guān)系型數(shù)據(jù)庫中去以及進(jìn)行不同類型系統(tǒng)的數(shù)據(jù)之間的轉(zhuǎn)換。事務(wù)性:關(guān)系型數(shù)據(jù)庫強(qiáng)調(diào)ACID規(guī)則(原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)),可以滿足對事務(wù)性要求較高或者需要進(jìn)行復(fù)雜數(shù)據(jù)查詢的數(shù)據(jù)操作,而且可以充分滿足數(shù)據(jù)庫操作的高性能和操作穩(wěn)定性的要求。并且關(guān)系型數(shù)據(jù)庫十分強(qiáng)調(diào)數(shù)據(jù)的強(qiáng)一致性,對于事務(wù)的操作有很好的支持。關(guān)系型數(shù)據(jù)庫可以控制事務(wù)原子性細(xì)粒度,并且一旦操作有誤或者有需要,可以馬上回滾事務(wù)。讀寫性能:關(guān)系型數(shù)據(jù)庫十分強(qiáng)調(diào)數(shù)據(jù)的一致性,并為此降低讀寫性能付出了巨大的代價(jià),雖然關(guān)系型數(shù)據(jù)庫存儲數(shù)據(jù)和處理數(shù)據(jù)的可靠性很不錯(cuò),但一旦面對海量數(shù)據(jù)的處理的時(shí)候效率就會變得很差,特別是遇到高并發(fā)讀寫的時(shí)候性能就會下降的非常厲害。授權(quán)方式:關(guān)系型數(shù)據(jù)庫常見的有 Oracle,SQLServer,DB2,Mysql,除了Mysql大多數(shù)的關(guān)系型數(shù)據(jù)庫如果要使用都需要支付一筆價(jià)格高昂的費(fèi)用,即使是免費(fèi)的Mysql性能也受到了諸多的限制。

3、設(shè)計(jì)步驟

關(guān)系型數(shù)據(jù)庫設(shè)計(jì)的過程可大體分為四個(gè)時(shí)期七個(gè)階段。

用戶需求分析時(shí)期:主要是了解和分析用戶對數(shù)據(jù)的功能需求和應(yīng)用需求,是整個(gè)設(shè)計(jì)過程的基礎(chǔ),事關(guān)整個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)的成敗。數(shù)據(jù)庫設(shè)計(jì)時(shí)期:主要是將用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的數(shù)據(jù)模型,可用實(shí)體—聯(lián)系模型來表示,然后將其轉(zhuǎn)換為已選好的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)RDBMS所支持的一組關(guān)系模式并為其選取一個(gè)適合應(yīng)用環(huán)境的物理結(jié)構(gòu),包括存儲結(jié)構(gòu)和存取方法。數(shù)據(jù)庫實(shí)現(xiàn)時(shí)期:包括數(shù)據(jù)庫結(jié)構(gòu)創(chuàng)建階段和應(yīng)用行為設(shè)計(jì)與實(shí)現(xiàn)階段,是根據(jù)數(shù)據(jù)庫的物理模型創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、創(chuàng)建索引、創(chuàng)建聚簇等。數(shù)據(jù)庫運(yùn)行與維護(hù)階時(shí)期:最后一個(gè)階段則是數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運(yùn)行后即可投入正式運(yùn)行。

4、設(shè)計(jì)原則

在進(jìn)行關(guān)系型數(shù)據(jù)庫的設(shè)計(jì)過程中,要遵循以下幾個(gè)原則,借此可以提高數(shù)據(jù)庫的存儲效率、數(shù)據(jù)完整性和可擴(kuò)展性。

命名規(guī)范化:在概念模型設(shè)計(jì)中,對于出現(xiàn)的實(shí)體、屬性及相關(guān)表的結(jié)構(gòu)要統(tǒng)一。例如在數(shù)據(jù)庫設(shè)計(jì)中,指定學(xué)生Sstudent,專指本科生,相關(guān)的屬性有:學(xué)號、姓名、性別、出生年月等,及每個(gè)屬性的類型、長度、取值范圍等都要進(jìn)行確定,這樣就能保證在命名時(shí)不會出現(xiàn)同名異義或異名同義、屬性特征及結(jié)構(gòu)沖突等問題。數(shù)據(jù)的一致性和完整性:在關(guān)系型數(shù)據(jù)庫中可以采用域完整性、實(shí)體完整性和參照完整性等約束條件來滿足其數(shù)據(jù)的一致性和完整性,用check、default、null、主鍵和外鍵約束來實(shí)現(xiàn)。數(shù)據(jù)冗余:數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)盡可能地減少冗余,這就意味著重復(fù)數(shù)據(jù)應(yīng)該減少到最少。例如:若一個(gè)部門職員的電話存儲在不同的表中,假設(shè)該職員的電話號碼發(fā)生變化時(shí),冗余數(shù)據(jù)的存在就要求對多個(gè)表進(jìn)行更新操作,若某個(gè)表不幸被忽略了,那么就會造成數(shù)據(jù)不一致的情況。所以在數(shù)據(jù)庫設(shè)計(jì)中一定要盡可能存在少地冗余。范式理論:在關(guān)系數(shù)據(jù)庫設(shè)計(jì)時(shí),一般是通過設(shè)計(jì)滿足某一范式來獲得一個(gè)好的數(shù)據(jù)庫模式,通常認(rèn)為3NF在性能、擴(kuò)展性和數(shù)據(jù)完整性方面達(dá)到了較好的平衡,因此,一般數(shù)據(jù)庫設(shè)計(jì)要求達(dá)到3NF,消除數(shù)據(jù)依賴中不合理的部分,最終實(shí)現(xiàn)使一個(gè)關(guān)系僅描述一個(gè)實(shí)體或者實(shí)體間一種聯(lián)系的目的。

5、常用關(guān)系型數(shù)據(jù)庫

主流的關(guān)系型數(shù)據(jù)庫有Oracle、DB2、MySQL、Microsoft SQL Server、Microsoft Access等多個(gè)品種,每種數(shù)據(jù)庫的語法、功能和特性也各具特色。

Oracle數(shù)據(jù)庫是由甲骨文公司開發(fā),并于1989年正式進(jìn)入中國市場。雖然當(dāng)時(shí)的Oracle尚名不見經(jīng)傳,通過多年的發(fā)展積聚了眾多名列前茅性的數(shù)據(jù)庫系統(tǒng)開發(fā)經(jīng)驗(yàn),在集群技術(shù)、高可用性、安全性、系統(tǒng)管理等方面都取得了較好的成績。Oracle產(chǎn)品除了數(shù)據(jù)庫系統(tǒng)外,還有應(yīng)用系統(tǒng)、開發(fā)工具等。在數(shù)據(jù)庫可操作平臺上,Oracle可在所有主流平臺上運(yùn)行,因而可通過運(yùn)行于較高穩(wěn)定性的操作系統(tǒng)平臺,提高整個(gè)數(shù)據(jù)庫系統(tǒng)的穩(wěn)定性。MySQL數(shù)據(jù)庫是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),可以使用最常用結(jié)構(gòu)化查詢語言進(jìn)行數(shù)據(jù)庫操作。也因?yàn)槠溟_源的特性,可以在General Public License的許可下下載并根據(jù)個(gè)性化的需要對其進(jìn)行修改。

MySQL數(shù)據(jù)庫因其體積小、速度快、總體擁有成本低而受到中小企業(yè)的熱捧,雖然其功能的多樣性和性能的穩(wěn)定性差強(qiáng)人意,但是在不需要大規(guī)模事務(wù)化處理的情況下,MySQL也是管理數(shù)據(jù)內(nèi)容的好選擇之一。

Microsoft SQL Server數(shù)據(jù)庫最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了名列前茅個(gè)操作系統(tǒng)版本。在Windows NT 推出后,Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,因而SQL Server數(shù)據(jù)庫伴隨著Windows操作系統(tǒng)發(fā)展壯大,其用戶界面的友好和部署的簡捷,都與其運(yùn)行平臺息息相關(guān),通過Microsoft的不斷推廣,SQL Server數(shù)據(jù)庫的占有率隨著Windows操作系統(tǒng)的推廣不斷攀升。

延伸閱讀1:I/O簡介

輸入/出(英文:Input/Output,簡寫為 I/O)是信息處理系統(tǒng)(例如計(jì)算器)與外部世界(可能是人類或另一信息處理系統(tǒng))之間的通信。輸入是系統(tǒng)接收的信號或數(shù)據(jù),輸出則是從其發(fā)送的信號或數(shù)據(jù)。該術(shù)語也可以用作行動的一部分;到“運(yùn)行I/O”是運(yùn)行輸入或輸出的操作。輸入/出設(shè)備是硬件中由人(或其他系統(tǒng))使用與計(jì)算器進(jìn)行通信的部件。例如,鍵盤或鼠標(biāo)是計(jì)算器的輸入設(shè)備,而監(jiān)視器和打印機(jī)是輸出設(shè)備。計(jì)算器之間的通信設(shè)備(如電信調(diào)制解調(diào)器和網(wǎng)卡)通常運(yùn)行輸入和輸出操作。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
MySQL InnoDB聚簇索引B+樹的階(m)是怎樣決定的?

一、MySQL InnoDB聚簇索引B+樹的階(m)是怎樣決定的1、頁的大小(Page Size)B+樹是以固定大小的頁(Page)為單位進(jìn)行存儲和操作的,頁是數(shù)據(jù)庫...詳情>>

2023-10-13 10:26:26
在 iPad 上運(yùn)行 Windows 是什么體驗(yàn)?

一、在 iPad 上運(yùn)行 Windows 是什么體驗(yàn)?zāi)壳笆忻嫔嫌幸恍┠軌蛟?iPad 上運(yùn)行 Windows 的應(yīng)用程序,例如 Parallels Access、Splash較好、VMware ...詳情>>

2023-10-13 10:18:47
app的啟動流程都包括哪些步驟?

一、app的啟動流程包括的步驟1、創(chuàng)建進(jìn)程App發(fā)起進(jìn)程:當(dāng)從桌面啟動應(yīng)用,則發(fā)起進(jìn)程便是Launcher所在進(jìn)程;當(dāng)從某App內(nèi)啟動遠(yuǎn)程進(jìn)程,則發(fā)送進(jìn)...詳情>>

2023-10-13 10:03:27
怎么理解Mongodb是介于關(guān)系型和非關(guān)系型的數(shù)據(jù)庫?

一、怎么理解Mongodb是介于關(guān)系型和非關(guān)系型的數(shù)據(jù)庫MongoDB被稱為介于關(guān)系型數(shù)據(jù)庫(RDBMS)和非關(guān)系型數(shù)據(jù)庫(NoSQL)之間,這是因?yàn)樗谝韵?..詳情>>

2023-10-13 09:55:50
DBeaver怎么保持?jǐn)?shù)據(jù)庫連接?

一、DBeaver保持?jǐn)?shù)據(jù)庫連接的方法1、連接到數(shù)據(jù)庫打開DBeaver并選擇連接到您的目標(biāo)數(shù)據(jù)庫。選擇適當(dāng)?shù)臄?shù)據(jù)庫類型,輸入必要的連接信息,如主機(jī)...詳情>>

2023-10-13 09:05:04
快速通道
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
久久99精品久久不卡 | 久久精品国产99久久6动漫 | 最新国产精品拍自在线播放 | 专区在线观看中文字幕AV | 亚洲成成熟女人专区 | 亚洲色偷偷偷网站色偷一区 |