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

基于MY S Q L數據庫存儲引擎的研究

2018-03-21 00:47:15高見斌
數字通信世界 2018年5期
關鍵詞:引擎定義數據庫

高見斌

(武漢職業技術學院,武漢 430074)

數據庫是指按照某種模型組織起來的、能夠長久保存在計算機存儲設備上,用戶或應用程序能夠共享使用的數據集合。MySQL是一個關系數據庫管理系統,用戶可以直接從官方網站免費下載。因為MySQL軟件小、速度快、成本低,MySQL作為網站數據庫成為了眾多中小型網站的選擇。MySQ不僅擁有別的數據庫不能比擬的獨特功能,而且MySQL數據庫是目前運行速度最快的非過程化語言數據庫。MySQL這些優勢得益于數據庫存儲引擎的應用。

1 存儲引擎的定義

數據庫存儲引擎就是在物理層上實現數據存儲和處理的方法,即怎樣存儲數據、怎樣建立數據索引和怎樣對數據進行操作等。不同的存儲引擎提供不同的存儲方法、索引方法、操作方法和鎖定措施。使用不同的存儲引擎,可以獲得不同的功能。MySQL的核心就是存儲引擎。數據庫管理系統使用數據引擎進行創建、查詢、更新和刪除數據操作。許多不同的數據庫管理系統都支持多種不同的數據引擎。由于在關系數據庫中,數據的存儲是以表的形式存儲的,因此存儲引擎也可以稱作是存儲和操作表的類型。數據庫存儲引擎決定了表的存儲方式和操作方式。

如果想實現所有數據存儲管理機制保持不變,那么數據庫中只能使用一種存儲引擎,SQL Server和Oracle就是只使用一種存儲引擎的數據庫。MySql允許用戶根據自己的需要編寫自己的存儲引擎。事實上,MySql數據庫提供了多種存儲引擎供用戶選擇,以實現不同的功能需求。

2 存儲引擎的分類

MySQL提供了多個不同的存儲引擎,分為處理事務安全表的引擎和處理非事務安全表的引擎兩大類。MySQL5.7支持的存儲引擎有MyISAM、InnoDB、Memory、Archive、Merge、CSV、Federated、BLACKHOLE等。在MySQL中,不要求使用同一種存儲引擎,根據具體的需求,可以對每一個表使用不同的存儲引擎。

3 各種存儲引擎特性比較

3.1 InnoDB存儲引擎

InnoDB是事務型數據庫的首選引擎,為Mysql的表提供了具有提交、回滾、崩潰恢復功能,支持聚簇索引、輔助索引、hash索引,支持多版本并發控制事務安全,支持行鎖定和外鍵約束。從MySQL 5.5.5之后,InnoDB作為默認存儲引擎。相對MySQL來說,寫處理能力不強,并且會占用較多存儲空間以保存數據及其索引。InnoDB的主要特性如下:

(1)支持自動增長列。InnoDB存儲引擎支持AUTOINCREMENT自動增長列。自動增長列的值不能為空,且值必須唯一。如果將0或null值插入,則實際插入的值為自動增長后的值。自動增長列的初始值默認從1開始,可以用alter table語句強行設置。每張表的數據在存儲時都按主鍵順序存放。假定在表定義時沒有指定主鍵,InnoDB存儲引擎會為每一行生成一個6字節的ROWID,并以此作為主鍵。此ROWID由自動增長列的值進行填充。對于InnoDB表自動增長列必須是組合索引的第一列,或者是索引。對于MYISAM表,可以是組合索引的其他列,插入一行數據后,自動增長列是按照組合索引的前面幾列進行排序后遞增的。

(2)存儲格式。InnoDB用以下兩種方式存儲表和索引:a.使用共享表空間存儲。表結構保存在.frm文件中。數據和索引保存在innodb_data_ fi le_path和innodb_data_home_dir定義的表空間中,可以是多個文件。b.利用多表空間進行存儲。表結構仍然保存在.frm文件中,但每個表的數據和索引單獨保存在.ibd文件中。如果為分區表,那么每個分區對應單獨的.ibd文件,文件名是’表名+分區名’。使用多表空間存儲,只針對新建表有效,且要設置參數innodb_ fi le_per_table,重啟mysql服務才能生效。

(3)支持外鍵約束(foreign key)。在MySQL的幾種存儲引擎中,只有InnoDB存儲引擎支持外鍵約束。外鍵使得表與表之間產生關聯。外鍵所在表為參照表,外鍵所依賴的表為被參照表。參照中表的外鍵在被參照表中必須是主鍵。當更新或刪除被參照表中的某個記錄時,參照中表的數據相應地也改變。創建索引時,可以指定更新、刪除被參照表時對參照表的相應操作。

(4)InnoDB是為處理巨大數據量而設計出來的,中央處理器CPU處理效率高,任何其他的關系型數據庫引擎可能都不能與之相比。

3.2 MyISAM存儲引擎

在MySQL 5.5.5之前版本中,MyISAM是MySQL默認的存儲引擎,后期對其進行了擴展。MyISAM存儲引擎不支持事務和外鍵約束,但擁有較高的插入、查詢速度,對事務完整性沒有要求,適合于以SELECT或INSERT操作為主的表。在網頁、數據倉儲等應用環境下,MyISAM存儲引擎常被采用。(1)存儲文件。每個MyISAM引擎物理上存儲為3個文件,文件名與表名相同,存儲表定義的文件擴展名為.frm,存儲數據的文件擴展名為.MYD,存儲索引的文件擴展名為.MYI,其中數據文件和索引文件可以放置在不同路徑下,以達到平衡輸入輸出的目的。在創建表時,可以通過DATA DIRRECTORY和INDEX DIRRECTORY語句指定數據文件和索引文件的目錄,注意需要絕對路徑,且有訪問權限。由于各種原因,MyISAM類型的表可能會被破壞,可以使用REPAIR TABLE語句修復。可以用CHECK TABLE語句檢查表的狀況。(2)存儲格式。MyISAM類型的表支持三種不同的存儲格式。一是靜態表,這是默認的存儲格式。優點是存儲速度快,容易緩存,字段長度固定。缺點是占用空間多。值得注意的是,字段存儲按照寬度定義補足空格,訪問應用時去掉空格;特別需要注意的是,如果字段本身就帶有空格,也會去掉。二是動態表,特點是字段變長,不固定記錄長度,優點是占用空間少。缺點是頻繁的更新、刪除操作會產生碎片,需要定期清理,且若出現故障,難以恢復。三是壓縮表,可用myisampack工具創建,單獨壓縮每個記錄,占用空間小,訪問速度快。

3.3 MEMORY存儲引擎

MEMORY存儲引擎使用存在于內存中的內容來創建表,是MySQL中一類特殊的存儲引擎。每個表實際對應一個格式為.frm的磁盤文件。這類表默認HASH索引,且數據在內存中,因此訪問速度非常快;不足之處是,一旦停止服務,表中的數據會丟失。系統變量max_heap_table_size決定表中可以存放的數據量大小,初始值為16MB,可按需求改變。同時在通過MAX_ROWS子句定義MEMORY表的最大行數。MEMORY存儲引擎主要用于統計操作時作為中間表,或用于那些內容穩定的表。對于這類表,需要注意的是,一旦重啟電腦,數據則會丟失,原因是數據并沒有寫入磁盤保存。

3.4 ARCHIVE存儲引擎

ARCHIVE存儲引擎的特點是擁有優良的壓縮機制,壓縮比高,存儲空間相對較少,僅支持插入和查詢兩種功能,從Mysql5.5以后開始支持索引(早期不支持索引)。ARCHIVE存儲引擎主要是把數據歸檔,不支持其他更多的高級功能。ARCHIVE存儲引擎一般用來當倉庫使用,存儲歷史數據或日志信息。ARCHIVE存儲引擎不支持事務。

4 存儲引擎的選擇

以上所述,每種存儲引擎各有特點。具體應用時選用什么類型的存儲引擎,需要結合個人需求和數據庫引擎的特點來綜合考慮。InnoDB是MySQL5.5版本以后的默認存儲引擎,主要用來處理大量的短期事務。通常優先選用InnoDB引擎,除非有非常特別的原因需要使用其他存儲引擎。假設插入和查詢記錄操作很頻繁,那么MyISAM引擎是不錯的選擇,因為它能提供較高的處理效率。Archive存儲引擎因提供高的壓縮功能和支持插入和查詢操作,適合數據采集類和日志應用。如果追求操作速度快,并且只是臨時存放少量數據,可以選擇Memory引擎,這種存儲引擎因數據保存在內存中,一旦掉電或重啟,數據就會丟失,安全性不高。更為靈活的是,可以根據不同的需求,在一個MYSQL數據庫中,多種不同的存儲引擎可以被混合使用。

[1] 武洪萍.MYSQL數據庫原理及應用[M].北京:人民郵電出版社,2014.

[2] 王威.MYSQL數據庫源代碼分析與存儲引擎的設計[D].南京郵電大學,2012.

猜你喜歡
引擎定義數據庫
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
數據庫
財經(2016年6期)2016-02-24 07:41:51
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame開發
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
山的定義
公務員文萃(2013年5期)2013-03-11 16:08:37
主站蜘蛛池模板: 亚洲国产成人精品无码区性色| 54pao国产成人免费视频| 国产激情无码一区二区APP| 在线视频亚洲色图| 亚洲视频影院| 黄色a一级视频| 免费a级毛片视频| 精品国产一区91在线| 国产swag在线观看| 国产成在线观看免费视频| 57pao国产成视频免费播放| 黄色污网站在线观看| 女人av社区男人的天堂| 日本尹人综合香蕉在线观看 | 人妻无码AⅤ中文字| 亚洲无码一区在线观看| 国产熟女一级毛片| 国产欧美日韩18| 国产91全国探花系列在线播放| 日韩 欧美 国产 精品 综合| 国产香蕉在线视频| 国产日韩欧美一区二区三区在线| 丁香婷婷激情网| 美女国产在线| 亚洲九九视频| 高清色本在线www| 麻豆精品久久久久久久99蜜桃| 在线观看亚洲国产| 久久亚洲天堂| 久久久久无码精品| 国产va欧美va在线观看| 不卡无码h在线观看| 91在线日韩在线播放| 亚洲AV无码乱码在线观看裸奔 | 91在线国内在线播放老师| 日韩成人在线视频| 女同国产精品一区二区| 97影院午夜在线观看视频| 色噜噜综合网| 天堂在线www网亚洲| 国产精品亚洲а∨天堂免下载| 国产福利2021最新在线观看| 免费在线视频a| 欧美国产日产一区二区| 亚洲欧美综合另类图片小说区| 国产人在线成免费视频| 亚洲狠狠婷婷综合久久久久| 欧美激情,国产精品| 国产精品夜夜嗨视频免费视频| 久久天天躁狠狠躁夜夜躁| 大陆国产精品视频| 99re视频在线| www精品久久| 亚洲成AV人手机在线观看网站| 亚洲av成人无码网站在线观看| 欧美视频在线播放观看免费福利资源 | 网友自拍视频精品区| 一级在线毛片| 99久久精品视香蕉蕉| 亚洲大学生视频在线播放| 国产精品无码久久久久久| 国产成人综合网在线观看| 99久久国产综合精品2023| 国产精品欧美日本韩免费一区二区三区不卡| 亚洲天堂在线视频| 无码福利视频| 久青草网站| 国产视频自拍一区| 亚洲精品视频在线观看视频| 农村乱人伦一区二区| 中文字幕在线一区二区在线| 欧美三级自拍| 在线va视频| AV在线天堂进入| 日韩国产另类| 爱色欧美亚洲综合图区| 青草免费在线观看| 美女裸体18禁网站| 天天干伊人| 波多野结衣中文字幕久久| AV无码一区二区三区四区| 91年精品国产福利线观看久久|