一、页目录和槽 接上一篇,现在知道记录在页中按照主键大小顺序串成了单链表。 那么我使用主键查询的时候,最顺其自然的办法肯定是从第一条记录,也就是 Infrimum 记录开始,一直向后找,只要存在总会找到。这种在数据量少的时候还好说,一旦数据多了,遍历耗时一定非常长。 于是,作者又想到了一个好办法,灵 ...
分类:
数据库 时间:
2021-07-26 16:37:12
阅读次数:
0
https://www.cnblogs.com/better-farther-world2099/p/9290966.html undolog实现事务原子性,redolog实现事务的持久性。 为了避免脏数据刷回磁盘过程中,掉电或系统故障带来的数据丢失问题,InnoDB采用事务日志(redo log) ...
分类:
数据库 时间:
2021-07-12 18:26:14
阅读次数:
0
索引下推(INDEX CONDITION PUSHDOWN,简称 ICP)是 MySQL 5.6 发布后针对扫描二级索引的一项优化改进。总的来说是通过把索引过滤条件下推到存储引擎,来减少 MySQL 存储引擎访问基表的次数以及 MySQL 服务层访问存储引擎的次数。ICP 适用于 MYISAM 和 ...
分类:
其他好文 时间:
2021-07-12 18:19:56
阅读次数:
0
MySQL5.1之前,myISAM是默认存储引擎,myISAM提供了大量的特性,包括全文索引、压缩、空间函数等,但不支持事务和行锁,最大缺陷是崩溃后无法安全恢复。对于只读的数据或表比较小,可以忍受修复操作的情况仍然可以使用myISAM。 myISAM将表存储在数据文件和索引文件中,分别以.myd和. ...
分类:
其他好文 时间:
2021-07-08 17:43:15
阅读次数:
0
死锁指的是多个事务在同一资源上相互占用并请求锁定对方占用的资源而导致恶性循环的现象。当多个事务试图以不同顺序锁定资源时可能就会产生死锁,多个事务同时锁定同一个资源也会产生死锁。 为了解决死锁问题,数据库系统实现了死锁检测和死锁超时机制。 越复杂的系统,例如InnoDB存储引擎,越能检测到死锁的循环依 ...
分类:
数据库 时间:
2021-07-07 17:51:52
阅读次数:
0
表锁是MySQL最基本的锁策略,并且是开销最小的策略。表锁会锁定整张表,一个用户在对表进行写操作前需要先获得写锁,这会阻塞其他用户对该表的所有读写操作。只有没有写锁时,其他读取的用户才能获取读锁,读锁之间不相互阻塞。 行锁可以最大程度的支持并发,同时也带来了最大开销。innoDB和XtraDB以及一 ...
分类:
数据库 时间:
2021-07-05 19:06:17
阅读次数:
0
Mysql 锁类型 一、锁类型介绍: MySQL有三种锁的级别:页级、表级、行级。 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 页面锁:开销和加锁时间界于表锁和行锁之间; ...
分类:
数据库 时间:
2021-07-02 16:06:28
阅读次数:
0
主要讨论RR隔离级别,因为RC只是少了间隙锁。 一、innodb七种锁 共享/排他锁(Shared and Exclusive Locks) 共享锁(Shared Locks,S锁) 排他锁(Exclusive Locks,X锁) 可以一起读,读写/写写互斥。 意向锁(Intention Locks ...
分类:
数据库 时间:
2021-07-02 15:56:48
阅读次数:
0
1 5个MySQL使用问题 1)关于count(*) 知识点:MyISAM会直接存储总行数,InnoDB则不会,需要按行扫描。 潜台词是,对于select count(*) from t; 如果数据量大,MyISAM会瞬间返回,而InnoDB则会一行行扫描。 实践:数据量大的表,InnoDB不要轻易 ...
分类:
数据库 时间:
2021-07-02 15:38:31
阅读次数:
0
区别:1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务; 2. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM ...
分类:
数据库 时间:
2021-06-28 18:27:34
阅读次数:
0