
MySQL
mysql
小阳同学^_^
是行动让潜能无限
展开
-
7、Explain解析SQL语句
ID列id 列的编号是select的序号,有几个select就有几个id , id列越大,优先级越高select_type列select_type对应的是简单查询和复杂查询解析SQL:explain select (select 1 from actor where id = 1) from (select * from film where id = 1) der;1)simple 单表查询2)DERIVED 包含在 from 子句中的子查询,生成的临时表,也叫派生表3)SUBQUERY原创 2020-06-14 22:58:17 · 364 阅读 · 0 评论 -
6、联合索引的数据结构
联合索引的数据结构每个节点的索引是按序排列的。 符合最左原则。原创 2020-06-11 23:11:50 · 1497 阅读 · 1 评论 -
5、MyISAM和Innodb引擎(表级别)
数据存储文件MyISAM数据存储文件有3个,索引和数据文件是分离的,非聚集的1).frm 表结构文件2).MYI 索引文件3).MYD 数据文件Innodb数据存储文件有2个,索引和数据文件是合并的,聚集的,聚簇索引1).frm 表结构文件2).ibd 数据文件MyISAM 数据结构主键索引非主键索引由上图可看出,MyISAM引擎的主键索引 和非主键索引的数据结构是一样的,叶子节点都存着数据的物理位置,指向数据的磁盘位置Innodb数据结构主键索引(聚簇索原创 2020-06-11 23:10:28 · 251 阅读 · 0 评论 -
4、mysql为什么用B+tree
B-TreeB树是一种多路平衡搜索树,但是B树允许每个节点上可以存放更多的数据,也允许每个节点有更多的子节点B树的特点:所有的键值分布在整个树中任何关键字只出现在1个节点中搜索可能在非叶子节点中结束B+TreeB+Tree是B树的变种B+Tree特点数据都存储在叶子节点,非叶子节点不存储真正的数据非叶子节点中的数据,都能在叶子节点中找到(关键字有可能出现在2处)。为所有的叶子节点增加了一个链指针为什么用B+TreeMysql是基于磁盘的数据库,索引是以索引文件存在于原创 2020-06-09 17:16:57 · 284 阅读 · 0 评论 -
3、AVL平衡树
二叉树的特点二叉树上的任意一个节点,小于其右边所有的节点,大于其左边所有的节点当删除二叉树上的节点时,当该节点既有左子节点,又有右子节点,那么找到该节点(1)下右边所有节点中的最小节点,删掉,并将其值赋值给该节点(1)。平衡二叉树(AVL树)平衡树满足最重要的一个特性:每一个节点的子节点高度最大相差1将每个结点的平衡因子控制在-1、0、1三个值是靠一种称为旋转(Rolate)的操作保证的,视情况分为左旋转和右旋转。平衡因子算法: 左边的高度-右边的高度=平衡因子。如图1:左边的高度为2,原创 2020-06-07 23:01:57 · 160 阅读 · 0 评论 -
2、MySQL事务和多版本并发控制
事务的特性ACID原子性(atomicity):事务的每一个写操作都是原子性的,要么一起成功,要么一起失败。要么全部提交成功,要么全部回滚一致性(consistency):先举例子,银行转账数据库总是从一个一致性的状态转换到另一个一致性的状态。当第3行执行结束后,开始执行第4行的时候,系统崩溃了,上一个账户还是没有减少200块,因为事务没有提交。回滚事务隔离性(isolation): 一个事务在提交前,对另外一个事务是不可见的,隔离的。详见事务的隔离级别。永久性(durability):一个事原创 2020-06-01 18:25:07 · 189 阅读 · 0 评论 -
1、Mysql逻辑架构和锁
Mysql逻辑架构第一层:并不是Mysql独有的,它处理连接,授权认证,安全等工作第二层:包括查询解析、优化、缓存、以及所有的内置函数(日期,时间,数学,加密函数),所有跨存储引擎的部分都是在这层处理,比如:存储过程、触发器、视图第三层:存储引擎:1)Innodb:默认的事务性存储引擎,MySQL 5.1 版本及5.1版本后的存储引擎2)Myisam:提供了大量的特殊性,比如全文索引,压缩,空间函数等,MySQL5.1版本前默认的存储引擎,不支持事务和行级锁,支持表锁锁共享锁(读锁):原创 2020-06-01 17:36:59 · 138 阅读 · 0 评论