Mysql表引擎
MySQL的強(qiáng)大之處在於它的外掛式儲(chǔ)存引擎,我們可以基於表格的特性使用不同的儲(chǔ)存引擎,達(dá)到最佳的效能。
如果你夠熟悉,並且有一定工作經(jīng)驗(yàn)後。你也可以使用阿里巴巴和網(wǎng)易開(kāi)源出來(lái)的MySQL引擎在自己的伺服器中使用。
大家在後面的一節(jié)《資料庫(kù)結(jié)構(gòu)定義語(yǔ)句》中可以學(xué)到建立表格的語(yǔ)句。 mysql在建立表格的時(shí)候,可以指定對(duì)應(yīng)的引擎。
在mysql指令中使用:
show engines;
#可以查看到目前伺服器支援的所有引擎。
我們介紹幾種常用的引擎和了解幾個(gè)不常用的引擎。避免未來(lái)在實(shí)際工作中看到一些引擎不知道概念。
引擎名稱 | 特別 |
---|---|
MyISAM | 常用。讀取效率很高的引擎 |
InnoDB | 常用。寫(xiě)入,支援事處等都支援 |
Archive | #不常用。歸檔引擎,壓縮比高達(dá)1:10,用於資料歸檔 |
NDB | 不常用。主要在MySQL 叢集伺服器中使用,不做介紹 |
MyISAM
不支援事務(wù),表鎖(表級(jí)鎖,加鎖會(huì)鎖住整個(gè)表),支援全文索引,操作速度快。常用於讀取多的業(yè)務(wù)。
- myisam儲(chǔ)存引擎表由myd和myi組成。 .myd用來(lái)存放資料文件,.myi用來(lái)存放索引文件。
- 對(duì)於myisam儲(chǔ)存引擎表,mysql資料庫(kù)只快取其索引文件,資料文件的快取由作業(yè)系統(tǒng)本身來(lái)完成。
InnoDB
- 支援事務(wù),主要針對(duì)線上事務(wù)處理(OLTP)方面的應(yīng)用。
- 行鎖定設(shè)計(jì),支援外鍵,即預(yù)設(shè)讀取操作不加鎖。
InnoDB是為處理巨大資料量時(shí)的最大效能設(shè)計(jì)。
註:
行鎖:寫(xiě)入、更新操作的時(shí)候?qū)⑦@一行鎖起來(lái),不讓其他人再操作了。
表鎖:寫(xiě)入、更新操作時(shí),將表格給鎖起來(lái)不讓其他人再操作了。
事務(wù):同時(shí)操作多個(gè)數(shù)據(jù),若其中的一個(gè)數(shù)據(jù)操作失敗。可回滾到操作之前。常用於銀行、電商、金融等系統(tǒng)。