MySQL基礎知識
MySQL經常和“資料庫”連在一起讀,這很容易對新手造成誤解,認為MySQL就是一個資料庫,其實不是這樣,MySQL是資料庫的集合,MySQL里面有很多資料庫,那么資料是直接存在資料庫里的嗎?并不,資料庫底下還有一個叫做資料表的存盤單元,資料表里面才存盤資料,
打個比方,好比一座大圖書館,就是MySQL,圖書館里面分南庫,北庫,這就是資料庫,每個庫里面的書都是放在書架上的,書架就是資料表,而放在書架上的很多本書,就是資料,這么說,大家應該理解了吧,所以按大小順序排個序就應該是,MySQL>資料庫>資料表>資料,
MySql資料庫是開放源代碼的關系型資料庫,目前,它可以提供的功能有:支持sql語言、子查詢、存盤程序、觸發器、視圖、索引、事務、鎖、外鍵約束和影像復制等,
同Oracle 和SQL Server等大型資料庫系統一樣,MySql也是客戶/服務器系統并且是單行程多執行緒架構的資料庫,
MySql區別于其它資料庫系統的一個重要特點是支持插入式存盤引擎,
那么什么是存盤引擎呢?
存盤引擎說白了就是如何存盤資料、如何為存盤的資料建立索引和如何更新、查詢資料等技術的實作方法,因為在關系資料庫中資料的存盤是以表的形式存盤的,所以存盤引擎也可以稱為表型別(即存盤和操作此表的型別),
在Oracle 和SQL Server等資料庫中只有一種存盤引擎,所有資料存盤管理機制都是一樣的, 而MySql資料庫提供了多種存盤引擎,用戶可以根據不同的需求為資料表選擇不同的存盤引擎,用戶也可以根據自己的需要撰寫自己的存盤引擎,
MySql中有哪些存盤引擎?
- MyISAM:這種引擎是mysql最早提供的,
這種引擎又可以分為靜態MyISAM、動態MyISAM 和壓縮MyISAM三種:
- 靜態MyISAM:如果資料表中的各資料列的長度都是預先固定好的,服務器將自動選擇這種表型別,因為資料表中每一條記錄所占用的空間都是一樣的,所以這種表存取和更新的效率非常高,當資料受損時,恢復作業也比較容易做,
- 動態MyISAM:如果資料表中出現varchar、xxxtext或xxxBLOB欄位時,服務器將自動選擇這種表型別,相對于靜態MyISAM,這種表存盤空間比較小,但由于每條記錄的長度不一,所以多次修改資料后,資料表中的資料就可能離散的存盤在記憶體中,進而導致執行效率下降,同時,記憶體中也可能會出現很多碎片,因此,這種型別的表要經常用optimize table 命令或優化工具來進行碎片整理,
- 壓縮MyISAM:以上說到的兩種型別的表都可以用myisamchk工具壓縮,這種型別的表進一步減小了占用的存盤,但是這種表壓縮之后不能再被修改,另外,因為是壓縮資料,所以這種表在讀取的時候要先時行解壓縮,
但是,不管是何種MyISAM表,目前它都不支持事務,行級鎖和外鍵約束的功能,
- MyISAM Merge引擎:這種型別是MyISAM型別的一種變種,
合并表是將幾個相同的MyISAM表合并為一個虛表,常應用于日志和資料倉庫,
- InnoDB: InnoDB表型別可以看作是對MyISAM的進一步更新產品,它提供了事務、行級鎖機制和外鍵約束的功能,
- memory(heap): 這種型別的資料表只存在于記憶體中,
它使用散列索引,所以資料的存取速度非常快, 因為是存在于記憶體中,所以這種型別常應用于臨時表中,
- archive: 這種型別只支持select 和 insert陳述句,而且不支持索引,
常應用于日志記錄和聚合分析方面,
當然MySql支持的表型別不止上面幾種,
總結
今天主要介紹了什么是MySql資料庫,并進一步引出了它的一個重要特性, 即插入式的多存盤引擎機制,然后,簡單介紹了什么是存盤引擎和MySql中幾種主要的存盤引擎,
最后,也分享給大家我學習mysql的學習教程,好東西要一起分享!!
MySQL學習教程是動力節點老杜講的,詳細講解了MySQL的相關知識,包括MySQL概述,MySQL應用環境,MySQL系統特性,MySQL初學基礎,MySQL管理工具,如何安裝MySQL及MySQL新特性,學mysql,刷完這套視頻基本的知識也就掌握了,
http://www.bjpowernode.com/?cnblogsJava.chai
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/340421.html
標籤:MySQL
