當前位置:首頁 » 操作系統 » mysql資料庫技術與應用

mysql資料庫技術與應用

發布時間: 2023-03-20 13:15:55

Ⅰ Access,MSsql,MYSQL資料庫的特點及應用

大家知道,常用的資料庫一般是分為三種: (一)、Access (二)SQL Server(三)MySQL,那麼,用戶想做一個網站,到底哪一種資料庫是適合自己的呢?以下給大家介紹一下常用的資料庫有什麼區別或是功能方面。

Access是一種桌面資料庫,只適合數據量少的應用,在處理少量數據和單機訪問的資料庫時是很好的,效率也很高。但是它的同時訪問客戶端不能多於4個。access資料庫有一定的極限,如果數據達到100M左右,很容易造成伺服器iis假死,或者消耗掉伺服器的內存導致伺服器崩潰。

SQL Server是基於伺服器端的中型的資料庫,可以適合大容量數據的應用,在功能上管理上也要比Access要強得多。在處理海量數據的效率,後台開發的靈活性,可擴展性等方面強大。因為現在資料庫都使用標準的SQL語言對資料庫進行管理,所以如果是標准SQL語言,兩者基本上都可以通用的。92HeZu網全部雙線合租空間均可使用Access資料庫,同時也支持SQL Server。SQL Server還有更多的擴展,可以用存儲過程,資料庫大小無極限限制。

SQL Server 特點:

1.真正的客戶機/伺服器體系結構。

2.圖形化用戶界面,使系統管理和資料庫管理更加直觀、簡單。

3.豐富的編程介面工具,為用戶進行程序設計提供了更大的選擇餘地。

4.SQL Server與Windows NT完全集成,利用了NT的許多功能,如發送和接受消息,管理登錄安全性等。SQL Server也可以很好地與microsoft BackOffice產品集成。

5.具有很好的伸縮性,可跨越從運行Windows 95/98的膝上型電腦到運行Windows 2000的大型多處理器等多種平台使用。

6.對Web技術的支持,使用戶能夠很容易地將資料庫中的數據發布到Web頁面上。

7.SQL Server提供數據倉庫功能,這個功能只在Oracle和其他更昂貴的DBMS中才有。

MySQL是一個開放源碼的小型關系型資料庫管理系統,開發者為瑞典MySQL AB公司,92HeZu網免費贈送MySQL。目前MySQL被廣泛地應用在Internet上的中小型網站中。提供由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫

MySQL特點:

1.MySql的核心程序採用完全的多線程編程。線程是輕量級的進程,它可以靈活地為用戶提供服務,而不過多的系統資源。

2.MySql可運行在不同的操作系統下。簡單地說,MySql可以支持Windows95/98/NT/2000以及UNIX、Linux和SUN OS等多種操作系統平台。

3.MySql有一個非常靈活而且安全的許可權和口令系統。當客戶與MySql伺服器連接時,他們之間所有的口令傳送被加密,而且MySql支持主機認證。

4.MySql支持ODBC for Windows。MySql支持所有的ODBC 2.5函數和其他許多函數,這樣就可以用Access連接MySql伺服器,從而使得MySql的應用被大大擴展。

5.MySql支持大型的資料庫。雖然對於用Php編寫的網頁來說只要能夠存放上百條以上的記錄數據就足夠了,但MySql可以方便地支持上千萬條記錄的資料庫。

6.MySql擁有一個非常快速而且穩定的基於線程的內存分配系統,可以持續使用面不必擔心其穩定性。

7.強大的查詢功能。MySql支持查詢的SELECT和WHERE語句的全部運算符和函數,並且可以在同一查詢中混用來自不同資料庫的表,從而使得查詢變得快捷和方便。

8.PHP為MySql提供了強力支持,PHP中提供了一整套的MySql函數,對MySql進行了全方位的支持。

Ⅱ Oracle、DB2、MySQL、SQL Server、Sybase這幾款數據的重點應用領域分別是哪些比如電信、互聯網、銀行等等

這個事情需要展開來看
很多大型企業單位為了滿足業務系統的使用需要,使用很強勁的伺服器主機,以大型機、小型機為主。這些機器都不使用windows系統,所以SQL Server之類的資料庫沒辦法在這種機器上運行。Oracle、DB2、Sybase之類的是主流,這幾個資料庫有很強大的技術支持團隊,也是受到大企業歡迎的原因。
計算機水平國外還是比較高的,所以外國軟體公司開發的針對大企業的軟體也都要求在這種資料庫上運行。
約定俗成,微軟的操作系統和資料庫由於不能運行在很強勁的主機上,所以只能給中小企業服務。微軟系列的還有access資料庫,基本上是為單機服務的。
至於MySQL基本上是為網站服務的,主要特點是免費,應用挺多,但是大企業信息化軟體很少用,因為沒有對應的業務支持人員,到時候出問題,找不到人,就出大事故了。
反過來再看資料庫本身,都有參數說明,你仔細看看就知道了。很多小資料庫本身底氣就不足,並發數量、最大庫文件等等參數標得很低,你說大企業動輒幾T幾P的數據,敢忘這種資料庫上放嗎?軟體公司敢編寫用這種資料庫的軟體嗎?
再說說知名度,企業之間都會互相問,要是一個很小很便宜的資料庫大家都用,都用得很好,市場佔有率極高。自然口碑就好,大家就都用了。微軟的sqlsever就是一個例子。從最開始的6.5基本上不能用到sql2000很成功,得到大量企業的認同,到現在出到2008版本,佔有率很高了,就是口碑,可是它在大企業中使用不理想,所以還是佔有中小企業。
分析這些資料庫,應該多方面來看,不能只看參數,只看技術。你都分析好了,發現某個資料庫不像大家說的,你能用,可是市場上找不到對應的軟體,也沒轍,除非你自己編寫。

Ⅲ mysql資料庫原理及應用第三版答案在哪裡找

mysql資料庫原理及應用 資料庫原理與應用(第3版)答案《資料庫原理與應用》(第三版)習題參考答案 第 1 章 資料庫概述 1. 試說明數據、資料庫、資料庫管理系統和資料庫系統的概念。答:數據是描述事物的符號記錄。資料庫是長期存儲在計算機中的有組織的、可共享的大量數據的集合。資料庫管理系統是一個專門用於實現對數據進行管理和維護的系統軟體。資料庫系統是指在計算機中引入資料庫後的系統,一般由資料庫、資料庫管理系統(及相關的實用工具)、應用程序、資料庫管理員組成。2. 數據管理技術的發展主要經歷了哪幾個階段?答:文件管理和資料庫管理。3. 與文件管理相比,資料庫管理有哪些優點? 答:與文件系統管理數據相比,資料庫系統管理數據帶來了如下好處:將相互關聯的數據集成在一起,較少的數據冗餘,程序與數據相互獨立,保證數據的安全可靠,最大限度地保證數據的正確性,數據可以共享並能保證數據的一致性。4. 在資料庫管理方式中,應用程序是否需要關心數據的存儲位置和存儲結構?為什麼? 答:不需要。因為資料庫管理系統提供了邏輯獨立性和物理獨立性。5. 在資料庫系統中,資料庫的作用是什麼? 答:資料庫是數據的匯集,它以一定的組織形式保存在存儲介質上。6. 在資料庫系統中,應用程序可以不通過資料庫管理系統而直接訪問數據文件嗎? 答:不能7. 數據獨立性指的是什麼?它能帶來哪些好處? 答:數據獨立性是指應用程序不會因數據的物理表示方式和訪問技術的改變而改變,即應用程序不依賴於任何特定的物理表示方式和訪問技術,它包含兩個方面:邏輯獨立性和物理獨立性。物理獨立性是指當數據的存儲位置或存儲結構發生變化時,不影響應用程序的特性;邏輯獨立性是指當表達現實世界的信息內容發生變化時,不影響應用程序的特性。8. 資料庫系統由哪幾部分組成,每一部分在資料庫系統中的作用大致是什麼? 答:資料庫系統一般包括資料庫、資料庫管理系統(及相應的實用工具)、應用程序和資料庫管理員四個部分。資料庫是數據的匯集,它以一定的組織形式保存在存儲介質上;資料庫管理系統是管理資料庫的系統軟體,它可以實現資料庫系統的各種功能;應用程序專指以資料庫數據為基礎的程序,資料庫管理員負責整個資料庫系統的正常運行。
第2章 數據模型與資料庫結構 1. 解釋數據模型的概念,為什麼要將數據模型分成兩個層次? 答:答:數據模型是對現實世界數據特徵的抽象。數據模型一般要滿足三個條件:第一是數據模型要能夠比較真實地模擬現實世界;第二是數據模型要容易被人們理解;第三是數據模型要能夠很方便地在計算機上實現。由於用一種模型來同時很好地滿足這三方面的要求在目前是比較困難的,因此在資料庫系統中就可以針對不同的使用對象和應用目的,採用不同的數據模型。根據模型應用的不同目的,將這些模型分為兩大類:概念層數據模型和組織層數據模型,以方便對信息的描述。2. 概念層數據模型和組織層數據模型分別是針對什麼進行的抽象? 答:概念層數據模型是對現實世界的抽象,形成信息世界模型,組織層數據模型是對信息世界進行抽象和轉換,形成具體的DBMS支持的數據組織模型。3. 實體之間的聯系有哪幾種?請為每一種聯系舉出一個例子。答:實體之間的聯系有一對一、一對多和多對多三種。例如:系和正系主任是一對一聯系(假設一個系只有一個正系主任),系和教師是一對多聯系(假設一個教師只在一個系工作),教師和課程是多對多聯系(假設一個教師可以講授多門課程,一門課程可由多個教師講授)。4. 說明實體-聯系模型中的實體、屬性和聯系的概念。5.指明下列實體間聯系的種類:(1)教研室和教師(設一個教師只屬於一個教研室,一個教研室可有多名教師)。(2)商品和顧客。(3)國家和首都(假設一個國家的首都可以變化)。(4)飛機和乘客。(5)銀行和賬戶。(6)圖書和借閱者。(設一個借閱者可同時借閱多本書,可在不同時間對同一本書借閱多次) 6.資料庫系統包含哪三級模式?試分別說明每一級模式的作用? 答:資料庫系統包含的三級模式為:內模式、模式和外模式。外模式是對現實系統中用戶感興趣的整體數據結構的局部描述,用於滿足不同資料庫用戶需求的數據視圖,是資料庫用戶能夠看見和使用的局部數據的邏輯結構和特徵的描述,是對資料庫整體數據結構的子集或局部重構。模式是資料庫中全體數據的邏輯結構和特徵的描述,是所有用戶的公共數據視圖。內模式是對整個資料庫的底層表示,它描述了數據的存儲結構。
7. 資料庫管理系統提供的兩級映像的作用是什麼?它帶來了哪些功能? 答:資料庫系統的兩級映象是模式與內描述間的映象和外模式與模式間的映象。模式/內模式的映象帶來了物理獨立性,即如果資料庫的存儲結構改變了,可通過調整模式/內模式的映象,使模式能夠保持不變。外模式/概念模式間的映象帶來了邏輯獨立性,當概念模式的結構可發生改變時,也可通過調整外模式/模式間的映象關系,使外模式可以保持不變。8.資料庫三級模式劃分的優點是什麼?它能帶來哪些數據獨立性? 答:資料庫的三級模式的劃分實際上將用戶、邏輯資料庫與物理資料庫進行了劃分,使彼此之間的相互干擾減到最少。這三個模式的劃分實際上帶來了兩個數據獨立性:物理獨立性和邏輯獨立性。這使得底層的修改和變化盡量不影響到上層。第3章 關系資料庫 1. 試述關系模型的三個組成部分。答:關系數據結構、關系操作集合和關系完整性約束。2. 解釋下列術語的含義:(1) 笛卡爾積:設D1,D2,…,Dn為任意集合,定義笛卡爾積D1,D2,…,Dn為:D1×D2× …×Dn ={(d1,d2,…,dn) | di ∈Di,i=1,2,…,n }(2) 主鍵:也稱主碼為或主關鍵字,是表中的屬性或屬性組,用於惟一地確定一個元組。(3) 候選鍵:如果一個屬性或屬性集的值能夠惟一標識一個關系的元組而又不包含多餘的屬性,則稱該屬性或屬性集為候選鍵。(4) 外鍵:設F是關系R的一個或一組屬性,如果F與關系S的主鍵相對應,則稱F是關系R的外鍵。(5) 關系:關系就是簡單二維表。(6) 關系模式:二維表的結構稱為關系模式。(7) 關系資料庫:對應於一個關系模型的所有關系的集合稱為關系資料庫。3. 關系資料庫的三個完整性約束是什麼?各是什麼含義? 答:實體完整性、參照完整性和用戶定義的完整性。實體完整性是保證關系中的每個元組都是可識別的和惟一的。參照完整性也稱為引用完整性,用於表達現實世界中的實體之間的關聯關系。
用戶定義的完整性也稱為域完整性或語義完整性,用於保證資料庫中存儲的值與現實世界相符。4. 連接運算有哪些?等值連接和自然連接的區別是什麼? 答:連接運算中最重要也是最常用的連接有兩個,一個是等值連接,一個是自然連接。自然連接與等值連接的差別為:l 自然連接要求相等的分量必須有共同的屬性名,等值連接則不要求;l 自然連接要求把重復的屬性名去掉,等值連接卻不這樣做。5. 對參與並、交、差運算的兩個關系R、S有什麼要求? 答:必須結構相同,且相應的屬性值取自同一個值域。6. 對參與除運算的兩個關系(R÷S)有什麼要求?除運算的結果關系中包含哪些屬性? 答:R中必須包含S的全部或部分屬性,除運算的結果包含的屬性是只屬於R不屬於S的屬性。7. 對參與自然連接和等值連接操作的兩個關系R、S有什麼要求?答:有語義相同的屬性。8. 投影操作的結果關系中是否有可能存在重復的記錄?為什麼? 答:不可能,因為投影運算會自動去掉投影後重復的記錄。9.利用表3-10至3-12所示的三個關系,寫出實現如下查詢要求的關系代數表達式。(1)查詢「信息系」學生的選課情況,列出學號、姓名、課程號和成績。∏Sno, Sname, Cno, Grade(σSdept=『信息系』(SCStudent)) 或:∏Sno, Sname, Cno, Grade(SC σSdept=『信息系』(Student))(2) 查詢「VB」課程的考試情況,列出學生姓名、所在系和考試成績。∏Sname, Sdept, Grade(σCname=『VB』(CoureSCStudent)) 或:∏Sname, Sdept, Grade(σCname=『VB』(Coure) SCStudent)(3) 查詢考試成績高於90分的學生的姓名、課程名和成績。∏Sname, Cname, Grade(σGrade>90(CoureSCStudent)) 或:∏Sname, Cname, Grade(Coure
σGrade>90(SC)Student)(4) 查詢至少選修了0512號學生所選的全部課程的學生的姓名和所在系。∏Sname, Sdept(Student (SC ÷ ∏Cno(σsno=』0512』(SC))))(5) 查詢至少選了「C01」和「C02」兩門課程的學生的姓名、所在系和所選的課程號。∏Sname, Sdept, Cno(Student (SC ÷ ∏Sno(σcno=』C01』 V Cno=』C02』(SC))))(6) 查詢沒有選修第1學期開設的全部課程的學生的學號、姓名和所選的課程號。∏Sno, Sname, Cno(Student SC (∏sno(SC) - ∏sno(σsemester=1(Course)SC)))(7) 查詢計算機系和信息系選了VB課程的學生姓名。∏Sname(σsdept=』計算機系』V sdept=』信息系』)∧ cname=』vb』(StudentSC Course)) 或:∏Sname(σsdept=』計算機系』V sdept=』信息系』(Student)SC σcname=』vb』(Course)) 第4章 SQL Server 20__基礎 1. 安裝SQL Server 20__對硬碟及內存的要求分別是什麼? 答:SQL Server 20__實際硬碟空間需求取決於系統配置和您決定安裝的功能,一般應確保系統驅動器中是否有至少 6.0 GB 的可用磁碟空間。內存:E_press 版本:最少512 MB;其他版本:最少1 GB。2. SQL Server實例的含義是什麼?實例名的作用是什麼? 答:一個實例代表一個獨立的資料庫管理系統。實例名是實例的標識,用戶通過「計算機名/實例名」的方式可訪問指定的命令實例。3. SQL Server 20__的核心引擎是什麼? 答:SQL Server(MSSQLSERVER)4. SQL Server 20__提供的設置服務啟動方式的工具是哪個? 答:配置管理器
5. 在SQL Server 20__中,每個資料庫至少包含幾個文件? 答:2個文件,一個數據文件,一個日誌文件 6. SQL Server 20__資料庫文件分為幾類?每個文件有哪些屬性? 答:主要數據文件和次要數據文件,屬性有:物理文件名及其位置、邏輯文件名、初始大小、增長方式、最大大小。第 5 章 數據類型及關系表創建 1. Tinyint數據類型定義的數據的取值范圍是多少? 答:0-2552. SmallDatatime類型精確到哪個時間單位? 答:分鍾3. 定點小數類型numeric中的p和q的含義分別是什麼? 答:p代表整數位數+小數位數的和值,q代表小數位數。4. Char(n)、nchar(n)的區別是什麼?它們各能存放多少個字元? 答:Char(n)中的n代表能存放n個位元組的字元,如果是字母可以存放n個,如果是漢字可存放n/2個。Nchar(n)中的n代表能存放的字元個數。5. Char(n)和varchar(n)的區別是什麼?答:Char(n)是定長存儲,一定佔n個位元組的空間。Varchar(n)代表最多佔n個位元組的空間。6. 數據完整性約束的作用對象有哪些? 答:表和列7. CHECK約束的作用是什麼? 答:限制列的取值范圍。8. UNIQUE約束的作用是什麼? 答:限制列取值不重。9. DEFAULT約束的作用是什麼? 答:提供列的默認值。上機練習 1. 在第4章創建的Students資料庫中,寫出創建如下三張表的SQL語句,要求在定義表的同時定義數據的完整性約束:(1)「圖書」表結構如下:書號:統一字元

Ⅳ mysql資料庫原理設計與應用有幾版

兩版
MySQL資料庫原理及應用 第2版 微課版 大學教材 已由人民郵電出版社出版發行。

Ⅳ MySQL資料庫存儲引擎詳解

存儲引擎是什麼?

MySQL中的數據用各種不同的技術存儲在文件(或者內存)中 這些技術中的每一種技術都使用不同的存儲機制 索引技巧 鎖定水平並且最終提供廣泛的不同的功能和能力 通過選擇不同的技術 你能夠獲得額外的速度或者功能 從而改善你的應用的整體功能

例如 如果你在研究大量的臨時數據 你也許需要使用內存存儲引擎 內存存儲引擎能夠在內存中存儲所有的表格數據 又或者 你也許需要一個支持事務處理的資料庫(以確保事務處理不成功時數據的回退能力)

這些不同的技術以及配套的相關功能在MySQL中被稱作存儲引擎(也稱作表類型) MySQL默認配置了許多不同的存儲引擎 可以預先設置或者在MySQL伺服器中啟用 你可以選擇適用於伺服器 資料庫和表格的存儲引擎 以便在選擇如何存儲你的信息 如何檢索這些信息以及你需要你的數據結合什麼性能和功能的時候為你提供最大的靈活性

選擇如何存儲和檢索你的數據的這種靈活性是MySQL為什麼如此受歡迎的主要原因 其它資料庫系統(包括大多數商業選擇)僅支持一種類型的數據存儲 遺憾的是 其它類型的資料庫解決方案採取的 一個尺碼滿足一切需求 的方式意味著你要麼就犧牲一些性能 要麼你就用幾個小時甚至幾天的時間詳細調整你的資料庫 使用MySQL 我們僅需要修改我們使用的存儲引擎就可以了

在這篇文章中 我們不準備集中討論不同的存儲引擎的技術方面的問題(盡管我們不可避免地要研究這些因素的某些方面) 相反 我們將集中介紹這些不同的引擎分別最適應哪種需求和如何啟用不同的存儲引擎 為了實現這個目的 在介紹每一個存儲引擎的具體情況之前 我們必須要了解一些基本的問題

如何確定有哪些存儲引擎可用

你可以在MySQL(假設是MySQL伺服器 以上版本)中使用顯示引擎的命令得到一個可用引擎的列表

    mysql>showengines; + + + + |Engine|Support|Comment| + + + + |MyISAM|DEFAULT|DefaultengineasofMySQL withgreatperformance| |HEAP|YES|AliasforMEMORY| |MEMORY|YES|Hashbased storedinmemory usefulfortemporarytables| |MERGE|YES|| |MRG_MYISAM|YES|AliasforMERGE| |ISAM|NO|Obsoletestorageengine nowreplacedbyMyISAM| |MRG_ISAM|NO|Obsoletestorageengine nowreplacedbyMERGE| |InnoDB|YES|Supportstransactions row levellocking andforeignkeys| |INNOBASE|YES|AliasforINNODB| |BDB|NO|Supportstransactionsandpage levellocking| |BERKELEYDB|NO|AliasforBDB| |NDBCLUSTER|NO|Clustered fault tolerant memory basedtables| |NDB|NO|AliasforNDBCLUSTER| |EXAMPLE|NO|Examplestorageengine| |ARCHIVE|NO|Archivestorageengine| |CSV|NO|CSVstorageengine| + + + + rowsinset( sec)

這個表格顯示了可用的資料庫引擎的全部名單以及在當前的資料庫伺服器中是否支持這些引擎

對於MySQL 以前版本 可以使用mysql> show variables like have_% (顯示類似 have_% 的變數):

    mysql>showvariableslike have_% ; + + + |Variable_name|Value| + + + |have_bdb|YES| |have_crypt|YES| |have_innodb|DISABLED| |have_isam|YES| |have_raid|YES| |have_symlink|YES| |have_openssl|YES| |have_query_cache|YES| + + + rowsinset( sec)

你可以通過修改設置腳本中的選項來設置在MySQL安裝軟體中可用的引擎 如果你在使用一個預先包裝好的MySQL二進制發布版軟體 那麼 這個軟體就包含了常用的引擎 然而 需要指出的是 如果你要使用某些不常用的引擎 特別是CSV RCHIVE(存檔)和BLACKHOLE(黑洞)引擎 你就需要手工重新編譯MySQL源碼

使用一個指定的存儲引擎

你可以使用很多方法指定一個要使用的存儲引擎 最簡單的方法是 如果你喜歡一種能滿足你的大多數資料庫需求的存儲引擎 你可以在MySQL設置文件中設置一個默認的引擎類型(使用storage_engine 選項)或者在啟動資料庫伺服器時在命令行後面加上 default storage engine或 default table type選項

更靈活的方式是在隨MySQL伺服器發布同時提供的MySQL客戶端時指定使用的存儲引擎 最直接的方式是在創建表時指定存儲引擎的類型 向下面這樣:

CREATE TABLE mytable (id int title char( )) ENGINE = INNODB

你還可以改變現有的表使用的存儲引擎 用以下語句:

ALTER TABLE mytable ENGINE = MyISAM

然而 你在以這種方式修改表格類型的時候需要非常仔細 因為對不支持同樣的索引 欄位類型或者表大小的一個類型進行修改可能使你丟失數據 如果你指定一個在你的當前的資料庫中不存在的一個存儲引擎 那麼就會創建一個MyISAM(默認的)類型的表

各存儲引擎之間的區別

為了做出選擇哪一個存儲引擎的決定 我們首先需要考慮每一個存儲引擎提供了哪些不同的核心功能 這種功能使我們能夠把不同的存儲引擎區別開來 我們一般把這些核心功能分為四類:支持的欄位和數據類型 鎖定類型 索引和處理 一些引擎具有能過促使你做出決定的獨特的功能 我們一會兒再仔細研究這些具體問題

欄位和數據類型

雖然所有這些引擎都支持通用的數據類型 例如整型 實型和字元型等 但是 並不是所有的引擎都支持其它的欄位類型 特別是BLOG(二進制大對象)或者TEXT文本類型 其它引擎也許僅支持有限的字元寬度和數據大小

這些局限性可能直接影響到你可以存儲的數據 同時也可能會對你實施的搜索的類型或者你對那些信息創建的索引產生間接的影響 這些區別能夠影響你的應用程序的性能和功能 因為你必須要根據你要存儲的數據類型選擇對需要的存儲引擎的功能做出決策

鎖定

資料庫引擎中的鎖定功能決定了如何管理信息的訪問和更新 當資料庫中的一個對象為信息更新鎖定了 在更新完成之前 其它處理不能修改這個數據(在某些情況下還不允許讀這種數據)

鎖定不僅影響許多不同的應用程序如何更新資料庫中的信息 而且還影響對那個數據的查詢 這是因為查詢可能要訪問正在被修改或者更新的數據 總的來說 這種延遲是很小的 大多數鎖定機制主要是為了防止多個處理更新同一個數據 由於向數據中插入信息和更新信息這兩種情況都需要鎖定 你可以想像 多個應用程序使用同一個資料庫可能會有很大的影響

不同的存儲引擎在不同的對象級別支持鎖定 而且這些級別將影響可以同時訪問的信息 得到支持的級別有三種:表鎖定 塊鎖定和行鎖定 支持最多的是表鎖定 這種鎖定是在MyISAM中提供的 在數據更新時 它鎖定了整個表 這就防止了許多應用程序同時更新一個具體的表 這對應用很多的多用戶資料庫有很大的影響 因為它延遲了更新的過程

頁級鎖定使用Berkeley DB引擎 並且根據上載的信息頁( KB)鎖定數據 當在資料庫的很多地方進行更新的時候 這種鎖定不會出現什麼問題 但是 由於增加幾行信息就要鎖定數據結構的最後 KB 當需要增加大量的行 也別是大量的小型數據 就會帶來問題

行級鎖定提供了最佳的並行訪問功能 一個表中只有一行數據被鎖定 這就意味著很多應用程序能夠更新同一個表中的不同行的數據 而不會引起鎖定的問題 只有InnoDB存儲引擎支持行級鎖定

建立索引

建立索引在搜索和恢復資料庫中的數據的時候能夠顯著提高性能 不同的存儲引擎提供不同的製作索引的技術 有些技術也許會更適合你存儲的數據類型

有些存儲引擎根本就不支持索引 其原因可能是它們使用基本表索引(如MERGE引擎)或者是因為數據存儲的方式不允許索引(例如FEDERATED或者BLACKHOLE引擎)

事務處理

事務處理功能通過提供在向表中更新和插入信息期間的可靠性 這種可靠性是通過如下方法實現的 它允許你更新表中的數據 但僅當應用的應用程序的所有相關操作完全完成後才接受你對表的更改 例如 在會計處理中每一筆會計分錄處理將包括對借方科目和貸方科目數據的更改 你需要要使用事務處理功能保證對借方科目和貸方科目的數據更改都順利完成 才接受所做的修改 如果任一項操作失敗了 你都可以取消這個事務處理 這些修改就不存在了 如果這個事務處理過程完成了 我們可以通過允許這個修改來確認這個操作

lishixin/Article/program/MySQL/201311/29301

熱點內容
c語言干什麼 發布:2024-03-29 00:05:35 瀏覽:313
香港中轉伺服器搭建 發布:2024-03-29 00:05:16 瀏覽:672
安卓手機怎麼在桌面上顯示鍾表 發布:2024-03-28 23:48:22 瀏覽:4
分析代碼能編譯嗎 發布:2024-03-28 23:48:16 瀏覽:766
c語言與易語言 發布:2024-03-28 23:46:25 瀏覽:587
ai壓縮腳本 發布:2024-03-28 23:41:10 瀏覽:987
危化品的存儲 發布:2024-03-28 23:02:09 瀏覽:608
qq重新設密碼怎麼設置 發布:2024-03-28 22:49:05 瀏覽:89
深圳航天信息稅盤伺服器地址 發布:2024-03-28 22:47:51 瀏覽:204
玩csol伺服器連接中斷怎麼辦 發布:2024-03-28 22:46:19 瀏覽:906