- 博客(955)
- 资源 (1)
- 收藏
- 关注

转载 2025年Java面试题
AOF和RDB是两种redis持久化的机制。重写和重载的区别ssm原理servlet生命周期自定义注解说一说sleep和wait的区别map的遍历方式有几种线程有几种创建方式说一下图论算法int有4个字节mysql的联合索引linux怎么查看端口号netstat -tunpl | grep 端口号fegin怎么暴露出来 fegin有哪些注解hashMap不是线程安全的,ConcurrentHashMap 是线程安全的 redis和mysql的事物有那么一些不一样redis幂等
2022-06-25 09:23:02
2524
转载 tcp为什么需要三次握手?
1.在第二次握手的时候,服务端会等待ACK并超时重传SYN+ACK,不会立即认为连接建立。2.在三次握手的时候,通过最后一次确认,确保双方都已经连接上了,避免资源浪费。
2025-04-05 00:59:41
2
转载 http三次握手是什么?
4.tcp第二次握手,服务端收到报文后,确认客户端的序列号,同意连接,并发送SYN+ACK给客户端,3.tcp第一次握手,客户端发送SYN同步包到服务端,请求建立连接,并告知服务端自己的初始序列号。5.tcp第三次握手,客户端收到报文后,确认服务端的序列号,再次发送ACK到服务端,连接正式建立。1.http不直接涉及三次握手,http的底层基于tcp协议,tcp建立连接会进行三次握手。2.http通信前必须建立tcp连接。告知客户端自己的初始序列号。
2025-04-05 00:58:44
5
转载 数据库三大范式是什么?
1.第一范式:每列只能有1个原子值,不能出现数组或者逗号分隔,每行必须有一个主键或者联合主键。2.第二范式:针对联合主键的表,非主键字段,必须依赖联合主键,否则拆分表。3.第三范式:非主键字段之间不能相互依赖,否则拆分表。
2025-04-05 00:01:26
5
转载 你知道mysql如何保障数据不丢失的吗?
1.通过redo log,double write,bin log,undo log,备份策略来保证数据不丢失。
2025-03-31 00:17:30
8
转载 redo log两段式提交如何保障数据不丢失
4.把redo log buffer的事务状态改为commit,更新磁盘中的redo log文件的事务状态。1.在准备阶段,所有修改操作先记录到redo log buffer,记录事务状态为prepare。2.立即刷盘,把redo log buffer的数据写入磁盘的redo log文件。6.如果发现是事务状态是prepare,检查事务是否有对应的binlog记录。3.在提交阶段,将事务操作写入到bin log并刷盘。7.如果有bin log,重做redo 事务。9.如果事务状态是commit,跳过。
2025-03-31 00:16:46
5
转载 mysql的两阶段提交,什么是两阶段提交 2pc?
2.是mysql确保事务在innodb存储引擎和服务器二进制日志bin log之间保持一致性的核心机制。5.innodb先将事务状态设置为prepare。7.准备阶段成功后,写入bin log 并刷盘。6.写入redo log并刷盘,返回准备成功。8.innodb将事务状态设置为commit。4.两阶段是将事务分为准备阶段和提交阶段。9.再次写入redo log并刷盘。3.要么都提交成功,要么都回滚。1.两阶段提交简称2pc。
2025-03-31 00:16:03
9
转载 redo log如何保障数据不丢失
2.预写日志就是所有修改的操作先写入redo log buffer,然后根据刷盘策略写入到磁盘的redo log文件。3.通过后台线程异步刷盘,把磁盘的redo log文件的数据写入到磁盘的.ibd独立表空间文件。4.在mysql崩溃,重启后通过磁盘上的redo log文件来恢复已提交事务,未刷盘的数据。1.通过预写日志(wal)和崩溃恢复,两阶段提交,双写,checkpoint机制来实现的。7.通过checkpoint机制标记已持久化数据,减少恢复时间。5.通过两阶段提交,避免半成功事务。
2025-03-31 00:15:22
8
转载 redo log的缺点
2.在大事务或者高负载场景下,恢复的时间比较长,恢复时间依赖日志量。3.只能恢复已提交的事务,如果人为把表删除了,那么无法进行备份。1.双重写入占用磁盘空间比较大,磁盘io性能下降。
2025-03-31 00:14:29
6
转载 redo log的核心功能?
5.double write防止部分页写入损坏。4.checkpoint机制标记持久化位置。3.预写日志wal+强制刷盘。1.追加写入,顺序io。2.先写内存在写磁盘。
2025-03-31 00:13:42
5
转载 mysql中的double write是什么意思?
1.比如说,一个磁盘页16kb,系统发生了宕机只写了几kb没写全。2.double write就是防止数据页部分内容写入问题。4.然后将页,顺序写入磁盘.ibdata1文件上的双写区域。3.当需要将脏页刷到磁盘的时候,先写入内存中的双写缓冲区。5.最后才写入实际的磁盘里面的数据文件位置。
2025-03-31 00:07:27
6
转载 一条sql提交的执行过程
10.如果启用了事务提交,那么需要把redo log刷盘,释放锁资源。7.对表扫描和索引进行查找,对查询条件,排序,函数,进行数据处理。4.验证表名,列名是否存在,检查用户是否有操作权限。2.将sql语句分解为关键字,标识符,运算符。9.对于修改操作,返回的是受影响的行数。1.客户端与mysql服务器建立连接。5.对查询进行优化,选择合适的索引。3.检查sql语句是否正确。8.将查询结果返回给客户端。
2025-03-31 00:06:43
4
转载 一条更新语句(update)的执行步骤
15.在事务提交的时候,将redo log buffer刷入到磁盘,然后写入bin log。17.后台purge线程清理不再需要的undo log,删除被标记为删除的记录。13.将物理修改记录到redo log buffer。5.生成执行计划,判断是否使用到索引,使用了那个索引。11.在buffer pool中找到对应的数据页。9.在修改前,将旧值写入undo log。16.后台线程异步将脏页写入磁盘数据文件。3.构建语法树,验证语句是否合法。7.通过索引定位到id=1的记录。12.修改内存中的数据页。
2025-03-30 18:02:26
7
转载 为什么需要redo log,优点是什么?
1.在事务提交的时候,redo log会持久化到磁盘。2.mysql崩溃恢复的时候,数据也不会丢失。3.将随机写改为顺序写,减少磁盘io。4.支持合并多个事务的io操作。
2025-03-30 17:28:43
7
转载 redo日志刷盘时机
3.redo log日志缓冲区满了的时候,写入磁盘。4.在检查点checkpoint触发的时候,写入磁盘。5.在mysql关闭的时候,写入磁盘。1.当事务提交的时候,写入磁盘。2.后台线程定期刷盘。
2025-03-30 17:18:16
5
转载 mysql中什么是双写缓冲?
4.发现不完整的页写入的时候,从双写缓冲恢复完整页。5.避免因系统崩溃或者断电导致数据页只写部分内容。3.如果系统崩溃,innodb会检查双写缓冲。1.先将修改的页写入内存中的双写缓冲区域。2.然后同步写入磁盘上的双写缓冲文件。
2025-03-30 17:05:26
6
转载 mysql中什么是异步合并?
2.合并多个变更到同一索引页,将多次随机写合并为顺序写,减少磁盘寻道时间。1.是将内存中缓冲的索引变更延迟写入到磁盘上的索引页。
2025-03-30 16:36:12
5
转载 mysql中什么是变更缓冲?
7.对非唯一索引的insert,update,delete操作都会记录到变更缓冲。6.后续通过异步的方式合并变更到磁盘,减少随机io操作。2.当修改非唯一索引数据的时候,若目标页不在内存中。1.变更缓冲就是提升对非唯一索引的写入性能。3.innodb会将这些变更暂存到变更缓冲。5.而非立即从磁盘读取索引页。4.就是内存中的特殊区域。
2025-03-30 16:27:52
7
转载 mysql中的数据字典是什么?
2.数据字典存储在mysql系统库的innodb表中,但是mysql对它们做了隐藏,用户不能直接查询,只能通过information_schema视图数据库,show命令进行查看。1.数据字典存储所有数据库对象的元数据(表,列,索引,约束,权限,字符集,视图,存储过程,触发器,函数,表空间,分区信息)
2025-03-30 15:49:24
7
转载 .ibd和.ibdata1的区别?
2.ibdata1是系统表空间文件,所有表都共享一个文件,可以减少文件数,但是很难恢复某一个表。1.ibd文件是独立表空间文件,每个表都有一个自己命名的.ibd文件,支持备份和崩溃恢复。
2025-03-30 03:57:19
7
转载 .ibdata1是什么意思?
2.存储数据字典,undo log,变更缓冲,双写缓冲。1.是innodb存储引擎的系统表空间文件。3.所有表都共享一个文件。
2025-03-30 03:55:01
7
转载 .ibd文件是什么意思?
1.ibd是innodb存储引擎的独立表空间文件,每个表都有一个自己表名的ibd文件。2.ibd文件存储了这个表的所有行数据,索引数据,表结构,空间分配信息,事务信息。
2025-03-30 03:32:54
7
转载 什么是表id?
4.可以通过information_schema视图数据库里面的innodb_tables表中进行查询。1.表id是innodb存储引擎在创建表的时候,自动给它分配的一个整数值的唯一id。3.表id存在mysql数据库tables核心数据字典表中,但是不对外开放,2.通过表id可以快速定位表,在事务,mvcc,崩溃恢复的时候都会使用到。
2025-03-30 03:23:30
5
转载 表id和ibd文件存放在哪里
6.通过space关联innodb_tablespaces_brief表,可以找到path存储的.ibd文件路径。5.表里面所有的列都在innodb_columns中,通过table_id,可以查询这个表下面的所有列。7.这个.ibd文件存储了这个表的所有行数据,索引数据,表结构,空间分配信息,事务信息。1.表id是innodb存储引擎在创建表的时候,自动给它分配的一个整数值的唯一id。2.通过表id可以快速定位表,在事务,mvcc,崩溃恢复的时候都会使用到。通过space可以找到path。
2025-03-30 02:59:06
10
转载 mysql的undo log 记录了那些内容?
3.insert,update,delete这些操作类型。2.事务id,回滚指针,表id(table_id)1.事务提交前修改的数据值。
2025-03-30 01:23:14
7
转载 truncate table 和delete的区别
1.truncate table是ddl操作,会清空整个表的数据,删除数据表文件,重新建一张空的表。2.delete是dml操作,删除的是行级的数据,再有新增的数据,,再有新增的数据会直接从1开始,不支持事务回滚。id继续自增,不会从1开始,支持事务回滚。
2025-03-29 23:16:57
19
转载 ddl和dml的区别?
1.ddl就是create table,alter table,drop table,truncate table创建表,修改表,删除表。2.dml就是insert,update,delete,select。6.如果dml和ddl一起使用,那么dml操作无法回滚。4.ddl的数据不支持事务回滚,会自动提交事务。3.一个是表结构的变化,一个是行数据的变化。5.dml的的数据支持事务回滚。
2025-03-29 23:07:02
6
转载 undo log为什么不保存ddl操作?
1.undo log不会保存创建表,修改表,删除表这些ddl操作,因为只记录dml(insert,update,delete)4.如果备份整个表结构和元数据的变更,那么需要存储空间更多,写入磁盘压力增大,2.在执行这些操作后会自动提交事务,导致无法回滚。3.ddl操作会直接修改数据字典和存储引擎元数据。5.所以undo log不会记录这些ddl操作。加锁阻塞时间更长,并发性能下降。
2025-03-29 22:41:19
4
转载 undo log的缺点?
3.undo log修改前,要先修改redo log,在mysql宕机之后,重启mysql,需要先通过redo log恢复undo log。2.如果当前事务已经提交,但是其他活跃的事务还在使用当前版本,那么undo log无法立即清理。,然后再通过undo log回滚事务,恢复时间比较长。1.事务长时间不提交,会占用大量磁盘空间。
2025-03-29 22:07:53
4
转载 undo log的优点?
3.保存数据修改的逻辑操作,就是把数据A改成数据B,比redo log纪录物理页修改来说,占用磁盘空间较小。2.实现mvcc多版本并发控制,允许读写操作可以同时进行。1.保存事务提交之前的数据,用于事务失败之后数据回滚。
2025-03-23 20:00:45
14
转载 redo log的作用价值
5.确保redo log空间循环使用,同时刷新脏页。2.在系统崩溃后将数据库恢复到一致状态。3.将随机写转换为顺序写,提升写入性能。4.通过延迟刷新脏页,减少磁盘io。1.确保事务提交后的修改不会丢失。6.在异常情况下保证数据不丢失。7.实现基于时间点的恢复。
2025-03-23 19:41:11
8
转载 redo log的工作流程
2.在事务提交的时候,会把redo log buffer中的内容写入到磁盘的redo log文件。4.在数据库崩溃之后重启,从redo log中读取所有已提交事务的修改操作,恢复到崩溃之前的状态。3.通过checkpoint机制定期将内存中buffer pool的脏页写入到磁盘。1.在事务执行过程中,先把数据页修改操作放入到内存的缓冲池中和。事务的增删改操作记录写入到redo log buffer。5.在redo log写满的时候,覆盖最早的日志记录。
2025-03-23 18:58:15
11
转载 Buffer Pool和Redo Log Buffer的区别?
2.redo log buffer主要用于缓存事务的增删改操作数据的记录,确保事务的持久性和数据的一致性。1.buffer pool主要用于缓存数据页,减少与磁盘的io操作,提升磁盘io性能。
2025-03-23 18:46:47
8
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人