美文网首页
2020-10-25-1-41页 MySQL 事务和锁

2020-10-25-1-41页 MySQL 事务和锁

作者: 4f528075fae8 | 来源:发表于2020-10-25 23:42 被阅读0次

查看 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主要做数据归档,redo log是奔溃恢复。
  2. innodb 共享表空间(系统表空间)和独立表空间,相关参数 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 单独存放。可以使用选项: 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. 临时表空间,可以通过参数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 文件中。慢查询指的是执行时长超过 long_query_time值的 SQL,默认为 10s,参数如下:
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.数据库路径,即系统数据库和用户数据库。

相关文章

  • 2020-10-25-1-41页 MySQL 事务和锁

    查看 MySQL 支持的存储引擎可以使用命令:SHOW ENGINES 重点关注 InnoDB、MyISAM、ME...

  • 浅析mysql的锁

    目录:1.锁的定义与分类(表、行、页)2.锁相关的语句(查看锁)3.mysql事务4.乐观锁和悲观锁5.数据库死锁...

  • mysql的锁+事务,联合的地方

    mysql的锁+事务,联合的地方 全文是对《Mysql 技术内幕 Innodb》中,锁和事务两个章节,自己能看懂或...

  • 数据库事务,锁

    事务 事务特点ACID 理解ACID 以银行转账为例 MySQL锁 锁是MySQL在服务器层和存储引擎层的并发控制...

  • 高性能Mysql笔记

    一、Mysql架构与历史 1、架构图 2、锁 表锁 行级锁 3、事务 死锁 Mysql中的事务 1

  • MySQL事务和锁

    事务特性 原子性(Atomicity [ˌætəˈmɪsəti]):事务是不可分割的最小单元一致性(Consist...

  • Mysql事务和锁

    1.什么是数据库的事务? 数据库事务的典型场景? 订单,转账 支付,电商等全部成功/全部不成功。金融 什么是事务?...

  • Mysql事务和锁

    ACID 其实AC是一个概念,就是要么一起执行,要么都不执行,只是看问题的指标不同而已,一个侧重过程,一个侧重结果...

  • 72-MySQL-事务-页锁

    页锁就是在 页的粒度 上进行锁定,锁定的数据资源比行锁要多,因为一个页(16k数据)中可以有多个行记录。当使用页锁...

  • MySQL数据库高级(七)——事务和锁

    MySQL数据库高级(七)——事务和锁 一、事务简介 1、事务简介 事务(Transaction) 是指作为单个逻...

网友评论

      本文标题:2020-10-25-1-41页 MySQL 事务和锁

      本文链接:https://www.haomeiwen.com/subject/wtsomktx.html