Linux运维论述---7

本文概述了MySQL一条语句执行流程,介绍双一机制(InnoDB的flush策略),比较InnoDB和MyISAM的不同特性,如事务支持、锁类型和统计行数,并剖析delete、truncate和drop操作的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)说明Mysql的一条语句执行过程。

在这里插入图片描述

下面这幅图来自作者推荐的文章:
一条SQL语句在MySQL中如何执行的
在这里插入图片描述

2)解释常说的“双一机制”(安全性能高)

参数:innodb_flush_log_at_trx_commit

01
将redo log每秒刷新一次到文件系统缓存,再同步到磁盘每次事务提交,将redo log同步到磁盘

参数:sync_binlog

01
事务提交后,由文件系统判断何时将缓存的binlog数据刷写至磁盘每次事务提交后,缓存的binlog数据都会刷写到磁盘

参数:innodb_flush_method

fsyncO_DSYNCO_DIRECT
日志和数据从缓冲区先写入文件系统缓存,再写入磁盘日志从缓冲区直接写入磁盘数据从缓冲区直接写入磁盘

3)Innodb和Myisam

InnodbMyisam
支持事务不支持事务
支持行级锁支持表级锁
支持MVCC(多版本并发控制)不支持MVCC
支持外键不支持外键
不支持全文索引支持全文索引
支持热备份不支持热备份

4)与Innodb相比,Myisam的统计行数的区别

当使用select count(*)且不加where条件,则表示统计全表的总行数。
此时Myisam有一个内部变量存储了表的行数,因此可以直接调用,因此其统计行数速度更快。
而Innodb也有一个存储行数的变量,但它是估计值,因此意义不大。

5)delete、truncate、drop的区别

deletetruncatedrop
逐行删除表的内容,逻辑删除整个表的删除全表内容,物理删除连表带表的内容全部一起删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值