写点什么

Mysql 常见概念

用户头像
water
关注
发布于: 2021 年 05 月 29 日

事务、索引、锁

重做日志(redo log)、归档日志(binlog)

Mysql 的 user 表有更新时,与 user 表有关的查询缓存会失效。即更新 user 表

update user set name = '' where id = 1

会把表 user 上的所有缓存结果都清空。

这种策略是否可以应用到缓存更新策略上?

在表更新时,使其对应的 Redis 缓存失效。


WAL(Write-Ahead Logging)关键点:

先写日志、再写磁盘。


WAL 如何应用到程序设计中。

日志是元数据,更新数据是更新结果。

生成 BI 报表,统计数据时采用这种策略。


重做日志保证即使数据库发生异常重启,之前提交的记录都不会丢失。

重做日志和归档日志的不同点(有 3 条):

  1. 重做日志是 InnoDB 引擎特有的。Server 层的日志称为归档日志。是所有引擎都可以使用的。

  2. 重做日志是物理日志,记录的是“在某个数据页上做了什么修改”。归档日志是逻辑日志,记录的是这个语句的原始逻辑。比如“给 ID=2 这一行的 C 字段加 1”。

  3. 重做日志是循环写的,空间固定。归档日志是可以追加写入的。“追加写”是指归档文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。

用户头像

water

关注

求知若饥,虚心若愚 2018.05.02 加入

结论先行,以上统下,归类分组,逻辑递进 观察、感受、需要、请求

评论 (1 条评论)

发布
用户头像
归档文件命名:
/usr/local/var/mysql/binlog.000165
/usr/local/var/mysql/binlog.000166
/usr/local/var/mysql/binlog.000167
/usr/local/var/mysql/binlog.000168
/usr/local/var/mysql/binlog.000169
/usr/local/var/mysql/binlog.000170
/usr/local/var/mysql/binlog.000171
/usr/local/var/mysql/binlog.000172
/usr/local/var/mysql/binlog.000173
/usr/local/var/mysql/binlog.000174
/usr/local/var/mysql/binlog.000175
/usr/local/var/mysql/binlog.000176
/usr/local/var/mysql/binlog.000177
展开
2021 年 05 月 29 日 23:44
回复
没有更多了
Mysql 常见概念