MYSQL 的環境變量:......server/bin下
引擎(Engine):是電子平台上開發程序或系統的核心組件。利用引擎,開發者可迅速建立、鋪設程序所需的功能,或利用其輔助程序的運轉。一般而言,引擎是一個程序或一套系統的支持部分。常見的程序引擎有游戲引擎,搜索引擎,殺毒引擎等。
存儲引擎就是指表的類型以及表在計算機上的存儲方式。
存儲引擎的概念是MySQL的特點,Oracle中沒有專門的存儲引擎的概念,Oracle有OLTP和OLAP模式的區分。不同的存儲引擎決定了MySQL數據庫中的表可以用不同的方式來存儲。我們可以根據數據的特點來選擇不同的存儲引擎。
通過show engines;查看SQL下的引擎
1.InnoDB
InnoDB給MySQL的表提供了事務處理、回滾、崩潰修復能力和多版本並發控制的事務安全。在MySQL從3.23.34a開始包含InnnoDB。它是MySQL上第一個提供外鍵約束的表引擎。而且InnoDB對事務處理的能力,也是其他存儲引擎不能比擬的。靠后版本的MySQL的默認存儲引擎就是InnoDB支持id自增,還支持外鍵
innoDB的優勢在於提供了良好的事務處理、崩潰修復能力和並發控制。缺點是讀寫效率較差,占用的數據空間相對較大(連表查詢)。
2.MyISAM
MyISAM的表存儲成3個文件。文件的名字與表名相同。拓展名為frm、MYD、MYI。其實,frm文件存儲表的結構;MYD文件存儲數據,是MYData的縮寫;MYI文件存儲索引,是MYIndex的縮寫。
基於MyISAM存儲引擎的表支持3種不同的存儲格式。包括靜態型、動態型和壓縮型。
其中,靜態型是MyISAM的默認存儲格式,它的字段是固定長度的,該表具有極高的訪問速度,即使在操作相當的數據表也是如此,但其最大的缺點就是占用空間較大;
動態型包含變長字段,記錄的長度不是固定的,其優點是它存數據時,采用的是數據的實際長度,能節省不少空間,但也是由於這點,當數據要做更新時,長度發生變更時,
就不會存在原來的位置,而存在別的位置,造成原來的位置形成一空洞,並且關聯的數據並不是存放在相鄰的塊中,而且產生大量的碎片,要定期進行碎片整理;
壓縮型需要用到myisampack工具,空間占用相當小,只有原大小的一半,而且讀取數據時,還會對數據進行加壓縮,並且注意該類型的表是只讀表,不能進行修改.
3.MEMORY
數據全部放在內存中,
每個基於MEMORY存儲引擎的表實際對應一個磁盤文件。該文件的文件名與表名相同,類型為frm類型。該文件中只存儲表的結構。而其數據文件,都是存儲在內存中,這樣有利於數據的快速處理,提高整個表的效率。值得注意的是,服務器需要有足夠的內存來維持MEMORY存儲引擎的表的使用。如果不需要了,可以釋放內存,甚至刪除不需要的表。
MEMORY默認使用哈希索引。速度比使用B型樹索引快。當然如果你想用B型樹索引,可以在創建索引時指定。
注意,MEMORY用到的很少,因為它是把數據存到內存中,如果內存出現異常就會影響數據。如果重啟或者關機,所有數據都會消失。因此,基於MEMORY的表的生命周期很短,一般是一次性的。