Mysql表引擎

MySQL的強大之處在於它的外掛式儲存引擎,我們可以基於表格的特性使用不同的儲存引擎,達到最佳的效能。

如果你夠熟悉,並且有一定工作經驗後。你也可以使用阿里巴巴和網易開源出來的MySQL引擎在自己的伺服器中使用。

大家在後面的一節《資料庫結構定義語句》中可以學到建立表格的語句。 mysql在建立表格的時候,可以指定對應的引擎。

在mysql指令中使用:

show engines;

#可以查看到目前伺服器支援的所有引擎。

我們介紹幾種常用的引擎和了解幾個不常用的引擎。避免未來在實際工作中看到一些引擎不知道概念。

引擎名稱特別
MyISAM常用。讀取效率很高的引擎
InnoDB常用。寫入,支援事處等都支援
Archive#不常用。歸檔引擎,壓縮比高達1:10,用於資料歸檔
NDB不常用。主要在MySQL 叢集伺服器中使用,不做介紹

MyISAM

不支援事務,表鎖(表級鎖,加鎖會鎖住整個表),支援全文索引,操作速度快。常用於讀取多的業務。

  1. myisam儲存引擎表由myd和myi組成。 .myd用來存放資料文件,.myi用來存放索引文件。
  2. 對於myisam儲存引擎表,mysql資料庫只快取其索引文件,資料文件的快取由作業系統本身來完成。

InnoDB

  1. 支援事務,主要針對線上事務處理(OLTP)方面的應用。
  2. 行鎖定設計,支援外鍵,即預設讀取操作不加鎖。

InnoDB是為處理巨大資料量時的最大效能設計。


註:
行鎖:寫入、更新操作的時候將這一行鎖起來,不讓其他人再操作了。
表鎖:寫入、更新操作時,將表格給鎖起來不讓其他人再操作了。
事務:同時操作多個數據,若其中的一個數據操作失敗。可回滾到操作之前。常用於銀行、電商、金融等系統。

繼續學習
||
<?php echo "Hello Mysql"; ?>