03 2024 档案
摘要:1. 例子 with A as (select * from class) select *from A MySQL8.0 才支持
阅读全文
摘要:1.如果采取“先把数据放在内存,然后集中写入磁盘”的办法,可以节省 CPU 资源和磁盘读取的时间,但是也会面临系统故障时会丢失数据的风险; 相反,如果每次都写入磁盘,数据最安全,但是频繁的磁盘读写,会导致系统效率低下。这就需要我们提升优化资源配置的能力。 2. 调整系统参数 InnoDB_flush
阅读全文
摘要:驱动表与被驱动表 先了解在join连接时哪个表是驱动表,哪个表是被驱动表:1.当使用left join时,左表是驱动表,右表是被驱动表2.当使用right join时,右表是驱动表,左表是被驱动表3.当使用join时,mysql会选择数据量比较小的表作为驱动表,大表作为被驱动表 join查询如何选择
阅读全文
摘要:1. Buffer Pool 缓冲池是主内存中的一个区域,InnoDB在访问表和索引数据时会在该区域进行缓存。 缓冲池允许直接从内存访问频繁使用的数据,这加快了处理速度。在专用服务器上,通常会将高达80%的物理内存分配给缓冲池。 2.简单优化 把innodb_buffer_pool_size设置为1
阅读全文
摘要:InnoDB的三大特性是:Buffer Pool、自适应Hash索引、双写缓冲区。 1. Buffer Pool,为了提高访问速度,MySQL预先就分配/准备了许多这样的空间,为的就是与MySQL数据文件中的页做交换,来把数据文件中的页放到事先准备好的内存中。数据的访问是按照页(默认为16KB)的方
阅读全文
摘要:1.redo log 是 InnoDB 引擎特有的,binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用。 2. 最重要的是,当数据库 crash 后,想要恢复未刷盘但已经写入 redo log 和 binlog 的数据到内存时,binlog 是无法恢复的。虽然 binlog
阅读全文
摘要:1.二进制日志 (Binary Log) 二进制日志包含一系列二进制日志事件(Binary Log Events)。每个事件都描述了对数据库执行的一个更改 二进制日志在备份和复制中的应用: 1.1.数据备份 1.2.增量备份 2.重做日志 (Redo Log) 首先既然MySQL会写redo log
阅读全文
摘要:看到write-buffer和read-cache瞬间懂了 简单说,Buffer的核心作用是用来缓冲,缓和冲击。比如你每秒要写100次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始写和结束写这两件事嘛。用个buffer暂存起来,变成每10秒写一次硬盘,对系统的冲击就很小,写入效率高了,日子过得爽
阅读全文