最新 最热

redo log-Transaction(2)—mysql进阶(六十)

前面我们说了为了吧buffer pool的数据持久化到磁盘上,比如修改了一条数据,不可能每次吧整个页的数据都刷新过去,这样耗费性能,innoDB就是把修改的数据记录在redo日志里,redo日志格式主要是spaceId,type,page_number,offset,Dat...

2022-07-29
2

redo log(1)—mysql进阶(五十九)

上篇文章说了我们可以用begin 和statr transaction,提交可以commit,rollback回滚,可以指定回滚到保存点,也可以设置全局变量set autocommit off。也会隐式提交,比如开启事务后,如果操作或者新增了表,比如create table等语句,...

2022-07-29
0

transaction (2)—mysql进阶(五十八)

上篇文章说了acid四个事务的特性,原子性保证要不两个sql一起执行,要么不执行,隔离性,两个事务之间必须互不干扰,一致性,两边的数据必须保持一致,可以说一致性的前提是原子性和隔离性必须正常,但原子性和隔离性都正常,就能保证...

2022-07-29
2

transaction (1)—mysql进阶(五十七)

前面说了当设置的buffer_pool_size在1个G内,则不管如何设置,buffer_pool_instances都是一个,当在1个G以上,mysql才支持多个instances设置,每个都有自己独立的链表,多线程的情况下互不干扰运行。...

2022-07-29
2

多个buffer Pool实例 (3)—Buffer Pool(五十六)

前面说了lru链表,为了防止mysql的预读和全表查询刷新pool的频率太高,所以把lru链表分为young区域和old区域,但是频繁的移动lru链表也影响性能,所以当在young后半部1/4区域的时候,才会移动到最前面。初始数据从磁盘刷新到内...

2022-07-29
2

LRU链表管理(2)—Buffer Pool(五十五)

前面说了buffer pool的重要性,每次查询数据并不是I/O从磁盘获取的,而是吧磁盘上的数据刷新到buffer pool里,里面组成有缓存页和控制块,缓存页可以用innoDB_buffer_pool_size设置,控制块的内存是单独存储的。分为free链表和...

2022-07-29
2

磁盘&CPU调节(1)—Buffer Pool(五十四)

上篇文章说mysql5.6之后新增了系统变量optimizer_tance可以看到他的优化过程。

2022-07-29
2

Optimizer trance—mysql进阶(五十三)

前面介绍了,如果加个format=JOSN会把数据以json的格式返回,如果想看查询的额外信息,还可以在explain之后加个show warning查看,其中如果code为1003,则代表message里的内容是mysql优化器优化之后的sql。...

2022-07-29
2

数据库mysql的执行顺序(sql语句大全实例教程)

今天遇到一个问题就是mysql中insert into 和update以及delete语句中能使用as别名吗?目前还在查看,但是在查阅资料时发现了一些有益的知识,给大家分享一下,就是关于sql以及MySQL语句执行顺序:...

2022-07-29
2

你会看 MySQL 的执行计划(EXPLAIN)吗?

SQL 执行太慢怎么办?我们通常会使用 EXPLAIN 命令来查看 SQL 的执行计划,然后根据执行计划找出问题所在并进行优化。

2022-07-29
4