MYSQL 插入内部工作

标签 mysql

假设我有下表

create table MyTable
(
    id int unsigned auto_increment primary key,
    data varchar(4) not null
);

任何人都可以向我解释当我像这样从客户端插入条目时 MYSQL 服务器在内部执行的确切步骤

insert into MyTable (data) values ("ABCD");

例如: (解析查询 - 检查权限 - ....... - 等等)

我想知道从我从客户端发送查询到数据成功存储并且一切正常的那一刻,MYSQL服务器所做的确切工作。

编辑:

我想知道这两个存储引擎的步骤:MYISAM - InnoDB

谢谢

最佳答案

您要的是源代码。 在这里https://github.com/mysql/mysql-server

经过一些澄清后,这里有一个(非常简单的)关于 MySQL(或其他数据库)除了将值存储到文件之外必须做什么的想法。 (MySQL) 数据库必须有 ACID 事务,因此必须做出许多文件没有的强有力保证。

它必须确保:

  • 原子性
  • 一致性
  • 隔离
  • 耐用性

此外,在大多数实际情况下,它必须维护至少一个索引,而文件不会。

ACID 和索引维护是完成的工作,除了附加到平面文件之外还需要时间。

关于MYSQL 插入内部工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38851433/

相关文章:

PHP 通过 URL 参数发布

c# - datareader 失败但不引发异常 c#

mysql - 子查询返回多于 1 行。使用 SQL select 更新不同表的结果

php - 使用 php/mysql 填充表单字段的最不麻烦的方法?

mysql - 单列与多列设计(针对非主键列)

mysql - 使用 AJAX 通知创建 MySQL 记录

Mysql 如何展平结果集

MySQL 涉及许多表的 SELECT 正确方法

php - Laravel 3、mysql 或 redis down 显示空白屏幕而不是重定向到 500 错误屏幕

mysql - 是否可以停止非复制数据库破坏复制的 mysql 错误?