- MYSQL存储引擎介绍
MyISAM和InnoDB的区别
MYISAM是5.5之前默认的存储引擎,支持全文索引,压缩,空间函数,但是不支持事务和行级锁,最大却显示崩溃后无法安全恢复。
对比:
1.是否支持行级锁:MyISAM只有表级锁,InnoDB支持表级锁和行级锁,默认是行级锁
2.是否支持事务和崩溃后的安全恢复:MyISAM强调性能,每次查询具有原子性,执行速度更快,但是不提供事务支持,InnoDB支持外键和事务等高级数据库功能,支持回滚,崩溃后的修复,和事务
3.是否支持外键:MyISAM就不支持,InnoDB支持
4.是否支持MVCC:仅InnoDB支持,MVCC用于高并发事务,比加锁更加高效,MVCC只在READ COMMITTED 和 REEPEATABLE READ两个隔离级别下工作,内部使用乐观锁和悲观锁来实现
https://www.cnblogs.com/songwp/p/14338422.html
(在InnoDB使用聚簇索引或者访问数据放入内存的应用中,执行效率比MyISAM更快)
————————————————
版权声明:本文为CSDN博主「盖世英雄来了」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40513633/article/details/111146180
- 索引
mysql索引使用的数据结构主要有BTree索引和哈希索引,哈希索引底层数据结构是哈希表,对于单条记录查询的时候可以选择哈希索引,查询性能最快,其余场景,更适合使用B-Tree索引
mysq中使用的是B+Tree索引,但是对于MyISAM和InnoDB实现的方式不同

为什么要使用B+树呢?
首先我们知道在数据库中索引可以使用hash算法,查询效率很高,但是不支持范围查询,因此我们考虑使用平衡二叉树,但是我们知道二叉树每个节点只有一个数据,如果数据变多的话,树就会越来越高,查询的成本也会增高,我们考虑使用B树,它可以在一个节点存储多个数据,B+树的优化是非叶子节点的数据会冗余一份在叶子节点,并且叶子节点之间使用指针相连,因此增高查询效率,而且支持范围查询,B+树里的元素也是有序的
————————————————
版权声明:本文为CSDN博主「盖世英雄来了」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40513633/article/details/111146180
https://www.cnblogs.com/songwp/p/14338422.html
- mysql 执行过程
连接器:建立连接、验证账号密码、检查权限
缓存(8.0失效)
分析器:词和语法的检查
优化器:选择最佳索引、生产执行计划
执行器: 通过API ,调用引起

https://www.cnblogs.com/wyq178/p/11576065.html
- mysql 语句解析过程
from
join on
where
group by
having
select
distinct
order by
limit

https://www.cnblogs.com/williamjie/p/11081592.html
网友评论