数据库系列课程(17)-索引实现原理(小结)
引言什么是索引?答:是帮助MySQL高效获取数据的数据结构。什么是全表扫描?答:是将整张表扫描一遍,效率非常低。本文言简意赅的总结索引的几种实现原理:hash算法平衡二叉树(AVL树)B树实现B+树实现(MyISAM和InnoDB使用)hash算法原...
数据库系列课程(16)-MyISAM和InnoDB的区别
InnoDBMyISAM⽀持事务处理不⽀持事务,回滚将造成不完全回滚,不具有原⼦性⽀持外键不⽀持外键⽀持⾏锁⽀持全⽂搜索不⽀持FULLTEXT类型的索引(在Mysql5.6已引⼊)不保存表的具体⾏数,扫描表来计算有多少⾏保存表的具体⾏数,不带where时,直接返回保存的⾏数对于AUTO_INCREMENT类型的字...
数据库系列课程(15)-MyISAM与InnoDB的索引差异
MyISAM的索引MyISAM的索引与行记录是分开存储的,叫做非聚集索引(UnClustered Index)。其主键索引与普通索引没有本质差异:有连续聚集的区域单独存储行记录主键索引的叶子节点,存储主键,与对应行记录的指针普通索引的叶子结点,存储索引列,与对应行记录的指针主键索引与普...
数据库系列课程(14)-脏读、不可重复读、幻读
脏读描述:一个事务读取另一个事务还没有提交的的数据。举例:事务1修改了一行数据,但是没有提交,此时事务2读取被事务1修改的数据,之后事务1因为某些原因rollback了,那么事务2读取到的数据就是脏数据了。解决方法:把数据库隔离级别修改为READ_COMMITTED。不可重复读描述:在...
数据库系列课程(13)-事务传播机制、隔离级别、通知类型
7种事务传播行为类型说明PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。PROPAGATION_SUPPORTS支持当前事务,如果当前没有事务,就以非事务方式执行。PROPAGATION_MANDATORY使用当前的事务,如果当...
数据库系列课程(12)-MySQL数据库优化及注意事项
1.MySQL数据库优化方案Mysql的优化,大体可以分为三部分:索引的优化慢查询优化表优化开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。还可以使用腾讯云MySQL数据库监控:腾讯云数据库地址:https://console.cloud.te...
数据库系列课程(11)-MyISAM和InnoDB对B-Tree索引不同的实现方式
MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM主键索引的:InnoDB也使用B+Tree作为索引结构,但具体实现方式却与MyISAM截然不同。MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。而在InnoDB中,表数据文件本身就是按...
数据库系列课程(10)-MySQL索引实现原理
1. 引言MySQL官方对索引的定义为:索引(Index)是帮助 MySQL 高效获取数据的数据结构。白话文:索引就像书的目录一样可以非常快速的定位到书的页码。如果向mysql发出一条sql语句请求,查询的字段没有创建索引的话,可能会导致全表扫描,这样的话查询效率非常低。那么MySQL中索引采用的是...
数据库系列课程(09)-Sharding-Jdbc日志分析
Sharding-JDBC中的路由结果是通过分片字段和分片方法来确定的。如果查询条件中有 id 字段的情况还好,查询将会落到某个具体的分片。如果查询没有分片的字段,会向所有的db或者是表都会查询一遍,让后封装结果级给客户端。Sharding-Jdbc和MyCat查询原理大致相同:示例代码:public interface Or...
数据库系列课程(08)-SpringBoot整合Sharding-Jdbc
1. 引言先来理解几个概念:「LogicTable」:数据分片的逻辑表,对于水平拆分的数据库(表),同一类表的总称。例如订单信息表拆分为2张表,分别是t_order_0、t_order_1,他们的逻辑表名为t_order。「ActualTable」:在分片的数据库中真实存在的物理表。即上个示例中的t_order_...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。