Chinaunix
标题:
今天遇到一些mysql面试题,还请解答
[打印本页]
作者:
jamesapple321
时间:
2016-09-22 00:01
标题:
今天遇到一些mysql面试题,还请解答
1.innodb的事务实现机制
2.日志实现机制
3.LSN三种状态各是什么意思
4.为什么log flushed up to的值和pages flushed up to的值会出现不一致
作者:
seesea2517
时间:
2016-09-22 09:41
请善用搜索引擎。
作者:
i6first
时间:
2016-10-12 16:49
回复
1#
jamesapple321
1.innodb的事务实现机制
我理解的关键点是ACID。应该围绕这个来回答。
2.日志实现机制
我理解的关键点是WAL,write ahead logging,先写日志再说数据。而写日志的过程又包括写二进制日志和事务日志。
3.LSN三种状态各是什么意思
这个问题我也没理解
4.为什么log flushed up to的值和pages flushed up to的值会出现不一致
因为有脏页的存在,所以
log flushed up to会大于等于
pages flushed up to。
作者:
jamesapple321
时间:
2016-12-20 13:45
谢谢你的解答
作者:
shang2010
时间:
2016-12-20 18:08
虽然就是那么回事,可是面试真的一条答不出来
作者:
shang2010
时间:
2016-12-20 18:08
毕竟不是搜索引擎,但是也不影响能力发挥
作者:
cjfeii
时间:
2017-02-23 13:55
网上查一下看看,应该都有的
作者:
chenfeng
时间:
2017-02-24 13:15
本帖最后由 chenfeng 于 2017-02-24 13:18 编辑
LSN: 一个一直在递增的日志序列号,在InnoDB中代表了从实例安装到当前已经产生的日志总量。可以通过LSN计算出其在日志文件中的位置。每个block在写盘时,
其最近一次修改的LSN也会记入其中,这样在崩溃恢复时,无需Apply该LSN之前的日志。
当前未刷脏的最老lsn和当前lsn的距离超过max_modified_age_async(71%)时,且开启了选项innodb_adaptive_flushing时,page cleaner线程会去尝试做更多的dirty page flush工作,避免脏页堆积。
当当前未刷脏的最老lsn和当前Lsn的距离超过max_modified_age_sync(76%)时,用户线程需要去做同步刷脏,这是一个性能下降的临界点,会极大的影响整体吞吐量和响应时间。
当上次checkpoint的lsn和当前lsn超过max_checkpoint_age(81%),用户线程需要同步地做一次checkpoint,需要等待checkpoint写入完成。
当上次checkpoint的lsn和当前lsn的距离超过max_checkpoint_age_async(78%)但小于max_checkpoint_age(81%)时,用户线程做一次异步checkpoint(后台异步线程执行CHECKPOINT信息写入操作),无需等待checkpoint完成。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2