MySQL引擎 學(xué)習(xí)筆記_MySQL教程
推薦:navicat如何連接mysql?navicat連接mysql詳細(xì)圖文教程最新版navicat for mysql,自帶注冊(cè)碼。已經(jīng)綠化,解壓到任意目錄就可運(yùn)行。 Navicat Premium 是一個(gè)可多重連接的數(shù)據(jù)庫(kù)管理工具,它可讓你以單一程序同時(shí)連接到 MySQL、Oracle、PostgreSQL、SQLite 及 sql server 數(shù)據(jù)庫(kù),讓管理不同類型的數(shù)據(jù)庫(kù)更加方便。Navicat Pr
一般來(lái)說(shuō),MySQL有以下幾種引擎:ISAM、MyISAM、HEAP、InnoDB與Berkley(BDB)。注意:區(qū)別的版本支持的引擎是有差異的。當(dāng)然啦,如果你感覺(jué)自己的確技術(shù)高超,你還能夠使用MySQL++來(lái)創(chuàng)建自己的數(shù)據(jù)庫(kù)引擎,這個(gè)已經(jīng)out of my knowledge,牛人可以參照MySQL++ API幫助來(lái)實(shí)現(xiàn)。下面逐一敘述這5種引擎各自的特性:
ISAM
ISAM是一個(gè)定義明確且歷經(jīng)時(shí)間考驗(yàn)的數(shù)據(jù)表格管理方法,它在設(shè)計(jì)之時(shí)就考慮到數(shù)據(jù)庫(kù)被查詢的次數(shù)要遠(yuǎn)大于更新的次數(shù)。因此,ISAM執(zhí)行讀取操作的速度很快,而且不占用大量的內(nèi)存與存儲(chǔ)資源。ISAM的兩個(gè)主要不足之處在于,它不支持事務(wù)解決,也不能夠容錯(cuò):如果你的硬盤崩潰了,那么數(shù)據(jù)文件就無(wú)法恢復(fù)了。如果你正在把ISAM用在關(guān)鍵任務(wù)應(yīng)用程序里,那就必須經(jīng)常備份你所有的實(shí)時(shí)數(shù)據(jù),通過(guò)其復(fù)制特性,MySQL能夠支持這樣的備份應(yīng)用程序。
MyISAM
MyISAM是MySQL的ISAM擴(kuò)展格式與缺省的數(shù)據(jù)庫(kù)引擎。除了提供ISAM里所沒(méi)有的索引與字段管理的大量功能,MyISAM還使用一種表格鎖定的機(jī)制,來(lái)優(yōu)化多個(gè)并發(fā)的讀寫操作。其代價(jià)是你需要經(jīng)常運(yùn)行OPTIMIZE TABLE命令,來(lái)恢復(fù)被更新機(jī)制所浪費(fèi)的空間。MyISAM還有一些有用的擴(kuò)展,例如用來(lái)修復(fù)數(shù)據(jù)庫(kù)文件的MyISAMChk工具與用來(lái)恢復(fù)浪費(fèi)空間的 MyISAMPack工具。
MyISAM強(qiáng)調(diào)了快速讀取操作,這可能就是為什么MySQL受到了Web開(kāi)發(fā)如此青睞的主要原因:在Web開(kāi)發(fā)中你所進(jìn)行的大量數(shù)據(jù)操作都是讀取操作。所以,大多數(shù)虛擬主機(jī)提供商與Internet平臺(tái)提供商(Internet Presence Provider,IPP)只允許使用MyISAM格式。
HEAP
HEAP允許只駐留在內(nèi)存里的臨時(shí)表格。駐留在內(nèi)存里讓HEAP要比ISAM與MyISAM 都快,但是它所管理的數(shù)據(jù)是不穩(wěn)定的,而且如果在關(guān)機(jī)之前沒(méi)有進(jìn)行保存,那么所有的數(shù)據(jù)都會(huì)丟失。在數(shù)據(jù)行被刪除的時(shí)候,HEAP也不會(huì)浪費(fèi)大量的空間。 HEAP表格在你需要使用SELECT表達(dá)式來(lái)選擇與操控?cái)?shù)據(jù)的時(shí)候非常有用。要記住,在用完表格之后就刪除表格。讓我再重復(fù)一遍:在你用完表格之后,不要忘記刪除表格。
InnoDB與Berkley DB
InnoDB與Berkley DB(BDB)數(shù)據(jù)庫(kù)引擎都是造就MySQL靈活性的技術(shù)的直接產(chǎn)品,這項(xiàng)技術(shù)就是MySQL++ API。在使用MySQL的時(shí)候,你所面對(duì)的每一個(gè)挑戰(zhàn)幾乎都源于ISAM與MyISAM數(shù)據(jù)庫(kù)引擎不支持事務(wù)解決也不支持外來(lái)鍵。盡管要比ISAM與 MyISAM引擎慢很多,但是InnoDB與BDB包括了對(duì)事務(wù)解決與外來(lái)鍵的支持,這兩點(diǎn)都是前兩個(gè)引擎所沒(méi)有的。如前所述,如果你的設(shè)計(jì)需要這些特性中的一者或者兩者,那你就要被迫使用后兩個(gè)引擎中的一個(gè)了。
認(rèn)識(shí)完了這么多的引擎,我們也知道了它們應(yīng)該在什么情況下拿來(lái)應(yīng)急,那么接著我們就要學(xué)會(huì)怎么來(lái)更換這些引擎了。
Globle:一種最簡(jiǎn)單的方法就是更改服務(wù)器配置,直接將其設(shè)置成你所需要的引擎。這個(gè)在 win下通過(guò)更改服務(wù)器安裝目錄下的mysql.ini中的default-storage-engine項(xiàng)即可,也可以通過(guò)運(yùn)行MySQL Server Instance Configuration Wizard做簡(jiǎn)單的設(shè)置。
Per Table:除了全局的方法外,還有一種更靈活的配置方法,那就是按表來(lái)設(shè)置引擎,這樣我們就可以把那些需要用到事務(wù)解決的表設(shè)置成InnoDB,其他設(shè)置成MyISAM,將性能提升到極致,這是不是很令人興奮呢?設(shè)置方法也比較簡(jiǎn)單:
1、你可以在Create Table語(yǔ)句的最后添加擴(kuò)展語(yǔ)句,如TYPE=MyISAM(或者ENGINE = INNODB)來(lái)指定當(dāng)前標(biāo)的引擎類型。也可以用Alter語(yǔ)句在建立表個(gè)后進(jìn)行更改。當(dāng)你不清楚當(dāng)前數(shù)據(jù)庫(kù)中各表的引擎時(shí)可以使用SHOW TABLE STATUS FROM DBname來(lái)查看。
2、使用隨MySQL服務(wù)器發(fā)布同時(shí)提供的MySQL客戶端來(lái)創(chuàng)建表,在創(chuàng)建時(shí)可以選擇使用的存儲(chǔ)引擎。
區(qū)別的引擎選擇在區(qū)別的業(yè)務(wù)解決上,性能將有天壤之別!!
分享:如何從Windows命令行啟動(dòng)MySQL要想從命令行啟動(dòng)mysqld服務(wù)器,你應(yīng)當(dāng)啟動(dòng)控制臺(tái)窗口(或DOS window)并輸入命令: C:\ C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld 根據(jù)系統(tǒng)中MySQL安裝位置的不同,前面的例子中使用的路徑也不同。 在非NT版本的Windows中,在后臺(tái)啟動(dòng)mysqld。也就是,服務(wù)
- navicat如何連接mysql?navicat連接mysql詳細(xì)圖文教程
- 如何從Windows命令行啟動(dòng)MySQL
- 你應(yīng)該知道的10個(gè)MySQL客戶啟動(dòng)選項(xiàng)
- MySQL十條特殊技巧
- 用特殊的MySQL運(yùn)算符獲得更多數(shù)據(jù)比較功能
- MySQL數(shù)據(jù)庫(kù)中與 NULL值有關(guān)的幾個(gè)問(wèn)題
- Redis SORT排序命令使用方法詳解
- mysql多表隨機(jī)查詢優(yōu)化方案
- 通過(guò)frm&ibd 恢復(fù) Mysql ibdata 丟失或損壞的數(shù)據(jù)教程
- mysql數(shù)據(jù)庫(kù)ROOT賬號(hào)權(quán)限丟失問(wèn)題解決方法
- hash和solr在海量數(shù)據(jù)分布式搜索引擎中的應(yīng)用教程
- 23道安全門加鑄MySQL數(shù)據(jù)庫(kù)
MySQL教程Rss訂閱編程教程搜索
MySQL教程推薦
- MySQL 關(guān)于表復(fù)制 insert into 語(yǔ)法的詳細(xì)介紹
- MySQL筆記之?dāng)?shù)據(jù)類型詳解
- mysql服務(wù)器字符集查詢和設(shè)置方法
- Windows環(huán)境下重置mysql密碼操作命令
- 在SQL Server的try...catch語(yǔ)句中獲取錯(cuò)誤消息代碼的的語(yǔ)句
- mysql導(dǎo)入數(shù)據(jù)庫(kù)文件最大限制的修改
- 如何用命令行進(jìn)入mysql具體操作步驟
- MYSQL 批量替換之replace語(yǔ)法的使用詳解
- mysql 無(wú)法連接問(wèn)題的定位和修復(fù)過(guò)程分享
- go語(yǔ)言怎么和mysql數(shù)據(jù)庫(kù)進(jìn)行鏈接
猜你也喜歡看這些
- 解決SQL Server 2005數(shù)據(jù)庫(kù)批量更新的辦法
- 解讀SQL Server 2008可用性
- 教你幾個(gè)MySQL鮮為人知特殊技巧
- 解讀微軟SQL Server 2008空間數(shù)據(jù)
- 讓SQL Server數(shù)據(jù)庫(kù)自動(dòng)執(zhí)行管理任務(wù)(二)
- 解析SQL Server2000連接中三個(gè)最常見(jiàn)錯(cuò)誤
- 談SQL Server 壓縮日志及數(shù)據(jù)庫(kù)文件大小
- Server2005中更改sa的用戶名的多種方法
- 詳解SQL Server 2008中的聯(lián)機(jī)事務(wù)處理
- 使用SQL Server 2000日志轉(zhuǎn)移實(shí)現(xiàn)高可用性
- 相關(guān)鏈接:
- 教程說(shuō)明:
MySQL教程-MySQL引擎 學(xué)習(xí)筆記
。