mysql基礎學習之一之建立表所對應的的檔案

liqilin0429發表於2015-04-19

使用不同的引擎建立了不同表後發現沒有對應的檔案

檢視mysql資料庫預設使用的儲存引擎
mysql> show variables like '%storage_engine%';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
| storage_engine         | InnoDB |
+------------------------+--------+
2 rows in set (0.00 sec)


使用INNODB的引擎建立
mysql> create table room_innodb(
    -> room_id int primary key auto_increment,
    -> room_no char(3)
    -> );
Query OK, 0 rows affected (0.02 sec)


使用Myisam的引擎建立
mysql> create table room(
    -> room_id int primary key auto_increment,
    -> room_no char(3)
    -> ) engine myisam character set utf8;
Query OK, 0 rows affected (0.07 sec)




在安裝目錄下檢視對應的檔案,卻沒有
在這種情況下需要檢視my.ini檔案


#Path to the database root
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"


發現實際儲存檔案的路徑如上
在這個檔案路徑下發現存在了相應的檔案
如果是用INNODB的引擎建立的表,只有一個對應的檔案room_innodb.frm
    ibdata1 這個檔案是儲存所有建立表引擎為innodb的所有儲存資料檔案和索引檔案的集合檔案


如果是用myisam的引擎建立的表,卻有3個檔案生成,分別是room.frm,room.MYD,room.MYI
   .frm是儲存表定義檔案(儲存表結構檔案),
   .MYD是資料庫資料檔案(儲存資料的檔案),
   .MYI是資料庫索引檔案(儲存索引的檔案)。 


innodb & myisam 的比較
區別
儲存的檔案方式不同:
myisam是一個表對應三個檔案
innodb是一個表對應一個檔案(使用innodb儲存引擎都使用表空間ibdata1來儲存資料和索引)


選擇儲存引擎的依據
第一  效能
第二  功能(查詢多的需要使用myisam引擎)



同時每建立一個DATABASE也會自動的生成一個資料夾

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20976446/viewspace-1585960/,如需轉載,請註明出處,否則將追究法律責任。

相關文章