当执行 SQL语句删除行时,InnoDB不会立即从数据库中物理删除。 仅当InnoDB 丢弃 为删除而编写的undo log 时,才会物理删除行及其索引记录(删除对应数据文件中的记录和索引)。 这种仅发生在不再需要多版本并发控制(MVCC)或回滚之后的删除操作,称为purge。 purge 操作用于 ...
分类:
数据库 时间:
2020-07-09 00:41:03
阅读次数:
106
1.Memory用的是hash index,但是InnoDB和MyISAM用的是B+树,不用二叉树的原因就是深度可能过深,深度过深影响查询和IO性能; 2.索引使用树的过程: BST:二分查找,不平衡AVL:二叉平衡树,最长子树和最短子树的高度之差不能超过1,数据越多,旋转越多,插入删除效率极低,查 ...
分类:
数据库 时间:
2020-07-08 15:06:03
阅读次数:
70
MariaDB 10.0.8增加了一种新的执行计划——Extended Keys。 它充分利用了InnoDB的隐藏列来做执行计划,因为我们都知道InnoDB的索引组织表会把主键放在最末尾,所以实际上每个索引最后都包含了主键。 打开和关闭这个优化器选项的命令如下: Enable: set optimi ...
分类:
数据库 时间:
2020-07-07 23:34:09
阅读次数:
66
myIsam引擎把一个表的总行数存在了磁盘上,因此执行count(*)会直接返回结果,效率很高 #但是myisam不支持事物 innodb引擎需要把数据一行行从引擎里读出来,然后计数累加。 innodb由于多版本并发控制机制,同一时刻不同回话拿到的结果可能都不相同,所以不能直接将总行数存储在磁盘上。 ...
分类:
数据库 时间:
2020-07-07 19:56:37
阅读次数:
130
update语句是如何执行 , 如何将执行后的新数据持久化在磁盘中 可以假设两种情境: 1. 假设MySQL在更新之后只更新内存中的数据就返回,然后再某一时刻进行IO将数据页持久化。这样所有操作都是在内存中,可以想象此时的MySQL性能是特别高的。但是,如果在更新完内存又还没有进行持久化的这段时间, ...
分类:
数据库 时间:
2020-07-07 13:08:20
阅读次数:
63
前面一文 mysql锁 介绍了mysql innodb存储引擎的各种锁,本文介绍一下innodb存储引擎的间隙锁,就以下问题展开讨论 1.什么是间隙锁?间隙锁是怎样产生的? 2.间隙锁有什么作用? 3.使用间隙锁有什么隐患? 一、间隙锁的基本概念 1.什么叫间隙锁 当我们用范围条件而不是相等条件检索 ...
分类:
数据库 时间:
2020-07-07 09:27:02
阅读次数:
69
参考文章:https://blog.csdn.net/puhaiyang/article/details/72284702 一.mysql锁的结构图 如上图所示,针对mysql的innodb存储引擎,mysql锁包括了乐观锁和悲观锁。而悲观锁又包括共享锁和排它锁,共享锁/排它锁里又有行锁和表锁的实现 ...
分类:
数据库 时间:
2020-07-07 09:20:07
阅读次数:
71
Active MQ 02 常用API 事务 session.commit(); session.rollback(); 用来提交/回滚事务 Purge 清理消息 签收模式 签收代表接收端的session已收到消息的一次确认,反馈给broker ActiveMQ支持自动签收与手动签收 Session. ...
分类:
其他好文 时间:
2020-07-06 13:04:38
阅读次数:
55
SHOW DATABASES; USE db1; #drop table department; CREATE TABLE department( id INT AUTO_INCREMENT PRIMARY KEY, title CHAR(15) )ENGINE=INNODB DEFAULT CHA ...
分类:
数据库 时间:
2020-07-06 11:18:37
阅读次数:
71
Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini和my.ini文件以及服务无法启动的解决办法以及修改初始密码的方法。 mysql官网下载地址 以5.7.20版本为例 首先安装包解压后,没有网上教程里面提到的data文件夹和my-default ...
分类:
数据库 时间:
2020-07-05 19:16:20
阅读次数:
56