报这个错:1213 - Deadlock found when trying to get lock; try restarting transaction
列的离散性(可以理解为差异性)=count(distinct col ) / count(col)
show open tables where in_use > 0 命令可以查询锁表。 in_use 为 1 表示这个表同时被两个用户使用,一个正在用,一个在锁定中。
关于InnoDB索引,我们可能知道InnDB索引是用B+树实现的,而B+树就是一种能优化查询速度的数据结构。但我们又没想过这样一个问题,能优化查询速度的数据结构有很多,为什么InnoDB要采用B+树?...
接着上一篇继续,先看第一篇再看此篇,不然你可能跟不上 1.查看表结构:desc 表名
先写redo log(同时写Log Sequence Number,简称LSN),redo log是逻辑和物理结合的日志,使用物理的方式定位到数据页,页内操作是逻辑的,所以为了保证数据的一致性,需要使用double write技术...
InnoDB中会在需要的时候加上行锁,不是使用完立即释放,而是等待事务结束才释放,这就是两阶段锁。
select * from message where id >10 and id <20; // 中间没有17这个数据
redo log是基于磁盘的数据结构,在崩溃恢复期间用于修正未完成的事务写入的数据。
注意:上面查出来的并非文件的物理大小,删除数据后,INNODB并不会释放物理空间,需要使用OPTIMIZE TABLE对表优化。