政府網(wǎng)站建設(shè)的重要性wordpress建站
MySQL與Oracle一樣都是通過邏輯存儲結(jié)構(gòu)來管理物理存儲結(jié)構(gòu),即管理硬盤上存儲的各種文件。下面將詳細(xì)介紹InnoDB存儲引擎中的數(shù)據(jù)文件和重做日志文件。
一、數(shù)據(jù)文件
“.ibd”文件和ibdata文件 這兩種文件都是存放Innodb數(shù)據(jù)的文件,之所以有兩種文件來存放Innodb的數(shù)據(jù)(包括索引),是因?yàn)?Innodb 的數(shù)據(jù)存儲方式能夠通過配置來決定是使用共享表空間存放存儲數(shù)據(jù),還是獨(dú)享表空間存放存儲數(shù)據(jù)。
視頻講解如下:
MySQL InnoDB的數(shù)據(jù)文件 |
---|
【趙渝強(qiáng)老師】MySQL InnoDB的數(shù)據(jù)文件 |
提示:當(dāng)使用innodb存儲引擎時,如果再配置文件中沒有配置innodb_file_per_table,默認(rèn)情況下,所有庫中的所有使用innodb存儲引擎的表示數(shù)據(jù)都存在‘ibdata1’這個文件中,表的數(shù)據(jù)信息和索引信息都存儲在ibdata1中,但是如果開啟了innodb_file_per_table參數(shù),表示每個innodb表類型的表使用單獨(dú)的表空間數(shù)據(jù)文件。
二、重做日志文件(redo log)
redo log是InnoDB存儲引擎層生成的日志,主要為了保證數(shù)據(jù)的可靠性和事務(wù)的持久性。視頻講解如下:
MySQL InnoDB的重做日志文件 |
---|
【趙渝強(qiáng)老師】MySQL InnoDB的重做日志 |
每個redo log默認(rèn)的大小是1G,由參數(shù)“innodb_log_file_size”參數(shù)決定。
mysql> show variables like "innodb_log_file_size";# 輸出的信息如下:
+----------------------+------------+
| Variable_name | Value |
+----------------------+------------+
| innodb_log_file_size | 1073741824 |
+----------------------+------------+
而redo log文件存放的路徑由參數(shù)“innodb_log_group_home_dir”決定。
mysql> show variables like "innodb_log_group_home_dir";# 輸出的信息如下:
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| innodb_log_group_home_dir | ./ |
+---------------------------+-------+
redo log文件與MySQL的數(shù)據(jù)文件默認(rèn)存放在同一個目錄下。通過下面方式可以進(jìn)行查看:
[root@mysql11 data]# pwd
/usr/local/mysql/data
[root@mysql11 data]# ll ib_logfile*
-rw-r-----. 1 mysql mysql 1073741824 Feb 20 20:11 ib_logfile0
-rw-r-----. 1 mysql mysql 1073741824 Feb 19 11:22 ib_logfile1# 這里可以看到有兩個ib_logfile開頭的文件,它們就是log group中的redo log file。
MySQL與Oracle一樣都采用重做日志組的方式來管理redo log。一個組內(nèi)由多個大小完全相同的redo log file組成,組內(nèi)redo log file的數(shù)量由變量 “innodb_log_files_group”決定,默認(rèn)值為2。
mysql> show variables like "innodb_log_files_in_group";# 輸出的信息如下:
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| innodb_log_files_in_group | 2 |
+---------------------------+-------+