2020-10-25-1-41頁 MySQL 事務和鎖

查看 MySQL 支持的存儲引擎可以使用命令:SHOW ENGINES

mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.01 sec)

mysql>

重點關注 InnoDB、MyISAM、MEMORY這三種。


MySQL物理文件體系結構

  1. binlog 二進制日志文件
    通過以下命令查看當前 binlog 文件列表:
mysql> show master logs;
ERROR 1381 (HY000): You are not using binary logging
mysql>

binlog 分為 statement 和 raw 格式。

  1. redo log
    binlog 與 redo log 的分工不同,binlog主要做數(shù)據(jù)歸檔,redo log是奔潰恢復。
  2. innodb 共享表空間(系統(tǒng)表空間)和獨立表空間,相關參數(shù) innodb_file_per_table
    查看是否開啟了這個獨立表空間選項:
mysql> show variables like 'innodb_file_per_table%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+
1 row in set, 1 warning (0.00 sec)

mysql>
  1. undo log 回滾日志,如果事務回滾,需要依賴 undo 日志進行回滾操作。為避免 ibdata1共享表空間暴漲,建議將 undo log 單獨存放??梢允褂眠x項: innodb_undo_directory,例如:
mysql> show variables like '%undo%';
+--------------------------+------------+
| Variable_name            | Value      |
+--------------------------+------------+
| innodb_max_undo_log_size | 1073741824 |
| innodb_undo_directory    | .\         |
| innodb_undo_log_truncate | OFF        |
| innodb_undo_logs         | 128        |
| innodb_undo_tablespaces  | 0          |
+--------------------------+------------+
5 rows in set, 1 warning (0.00 sec)
  1. 臨時表空間,可以通過參數(shù)innodb_temp_data_file_path查看,例如:
mysql> show variables like '%innodb_temp_data_file_path%';
+----------------------------+-----------------------+
| Variable_name              | Value                 |
+----------------------------+-----------------------+
| innodb_temp_data_file_path | ibtmp1:12M:autoextend |
+----------------------------+-----------------------+
1 row in set, 1 warning (0.00 sec)
  1. errorlog 錯誤日志
mysql> show variables like 'log_error';
+---------------+-------------+
| Variable_name | Value       |
+---------------+-------------+
| log_error     | .\KRAIT.err |
+---------------+-------------+
1 row in set, 1 warning (0.00 sec)
  1. slow.log, 如果配置了 MySQL 的慢查詢日志, MySQL 就會將運行過程中的慢查詢日志記錄到 show_log 文件中。慢查詢指的是執(zhí)行時長超過 long_query_time值的 SQL,默認為 10s,參數(shù)如下:
mysql> show variables like '%slow_query_log%';
+---------------------+----------------+
| Variable_name       | Value          |
+---------------------+----------------+
| slow_query_log      | ON             |
| slow_query_log_file | KRAIT-slow.log |
+---------------------+----------------+
2 rows in set, 1 warning (0.00 sec)

還有

mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set, 1 warning (0.00 sec)
  1. general_log 通用查詢日志,記錄client 連接和運行的語句。
mysql> show variables like '%general%';
+------------------+-----------+
| Variable_name    | Value     |
+------------------+-----------+
| general_log      | OFF       |
| general_log_file | KRAIT.log |
+------------------+-----------+
2 rows in set, 1 warning (0.00 sec)

9.數(shù)據(jù)庫路徑,即系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容