deleteRecord

Posted 看写写

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了deleteRecord相关的知识,希望对你有一定的参考价值。

#删除一条语句

逻辑sql语句

delete from  t SELECT whre a= 100;

逻辑上记录

删除记录

隔离性

删除的记录在 REPEATABLE READ 隔离级别下是继续可以看到的
但是在 read Commit隔离级别下,是不可以看到的。

数据库锁

只要是对表记录的修改,会自动一个添加一个事务,即使不显示的声明,mysql 也会给你加上一个事务
所以insert 语句自动加锁, 如果这个时候有人执行了 select for update 操作,或者修改操作导致
范围加锁则会导致 update 语句插入等待,默认10s内获取不到锁则抛出异常。

物理

double write

数据缓存先进入double weite,再写入相应的数据页

ibddata1

删除相应的所有索引,主键素银、唯一索引、辅助索引,由于是B+树结构,删除索引的操作还是
比较重的,特别是涉及到合并索引、拆分索引节点的话。

t.bid

在双向链表中,找到具体的数据,然后deleteFlag标记为1,等待专门的进程去最终删除数据,并且把
节点挂到freeList上面,进行复用。所以大量删除也有可能是造成内存碎片化的一个原因。

redolog

重做日志包含,删除的数据记录、插入的索引

undolog

对应的反向操作 ,插入语句

insert into t SELECT 100,100,100,100;

重做日志

binlog

就是insert 语句,这里就不再列出了,太长了,大家可以使用
mysqlbinlog -vv binlog.000004 语句去观察,但是需要注意的是 binglog
有三种不同的记录方式,statement、row、mixed,其内容是不一样的。

总结

删除很简单,但是有的时候回变成新能杀手。

以上是关于deleteRecord的主要内容,如果未能解决你的问题,请参考以下文章

text PYループ内包表记

python 内包表记

python リスト内包表记

html ¥·税込·税抜表记

html ¥·税込·税抜表记

html ¥·税込·税抜表记