引言 好久没写文章了,今天回来重操旧业。毕竟现在对后端开发的要求越来越高,大家要做好各种准备。 因此,大家有可能遇到如下问题 为什么Mysql中Innodb的索引结构采取B+树? 回答这个问题时,给自己留一条后路,不要把B树喷的一文不值。因为网上有些答案是说,B树不适合做文件存储系统的索引结构。如果 ...
分类:
数据库 时间:
2020-02-16 14:55:21
阅读次数:
93
表类型(存储引擎)的选择 MySQL支持的存储引擎包括MyISAM、InnoDB、BDB、MERGE、EXAMPLE、NDB、Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等其中InnoDB和BDB提供事物安全表,其他存储引擎都是非事务安全表。 查看当前的默认存储引擎 ...
分类:
数据库 时间:
2020-02-16 13:14:47
阅读次数:
109
Innodb表为什么要用数字自增主键 InnoDB引擎表的特点 1、InnoDB引擎表是基于B+树的索引组织表(IOT) 关于B+树 (图片来源于网上) B+ 树的特点: (1)所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好是有序的; (2)不可能在非叶子结点命中; (3)非叶 ...
分类:
数据库 时间:
2020-02-16 12:44:23
阅读次数:
94
死锁的概念 死锁是指两个或者两个以上的事务在执行过程中,因争夺锁资源而造成的一种互相等待的现象。 解决死锁问题最简单的一种方法是超时,即当两个事务互相等待时,当一个等待时间超过设置的某一阀值时,其中一个事务进行回滚,另一个等待的事务就能继续进行。在InnoDB存储引擎中,参数Innodb_lock_ ...
分类:
数据库 时间:
2020-02-15 23:42:38
阅读次数:
131
缓冲区池相关 innodb_flush_log_at_trx_commit (双一标准之一) 主要控制了 innodb 将 log buffer 中的数据写入日志文件并 flush 磁盘的时间点,取值分别为0、1、2三个。 Innodb_flush_method=(O_DIRECT, fdatasy ...
分类:
数据库 时间:
2020-02-15 23:36:32
阅读次数:
110
因为不同锁之间的兼容性关系,在有些时刻一个事务中的锁需要等待另一个事务中的锁释放它所占用的资源,这就是阻塞。 阻塞并不是一件坏事,其实为了确保事务可以并发且正常地运行。 在InnoDB存储引擎中, 参数innodb_lock_wait_timeout 用来控制等待时间(默认50秒); 动态参数,可随 ...
分类:
数据库 时间:
2020-02-15 20:35:58
阅读次数:
81
1、一致性的非锁定读 一致性的非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过行多版本控制(multi versionning)的方式来读取当前执行时间数据库中行的数据。如果读取的行正在执行DELETE或UPDATE操作,这时读取操作不会因此去等待行上锁的 ...
分类:
数据库 时间:
2020-02-15 18:18:47
阅读次数:
84
关系数据库依赖于主键,它是数据库物理模式的基石。主键在物理层面上只有两个用途: 惟一地标识一行。 作为一个可以被外键有效引用的对象。 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。下面是主键和索引的一些区别与联系。 1. 主键一定是 ...
分类:
数据库 时间:
2020-02-14 10:38:54
阅读次数:
69
庚子鼠年 戊寅月 丙戌日 描述 数据库引擎的了解,Mybatis多表查询 技术总结: "https://blog.csdn.net/qq_40674583/article/details/104303340" 随笔 MySQL 引擎 1.InnoDB存储引擎 1. InnoDB给MySQL的表提供了 ...
分类:
其他好文 时间:
2020-02-13 23:07:28
阅读次数:
93
封锁粒度 MySQL提供了两种封锁粒度:行级锁、表级锁 应该尽量只锁定需要修改的那部分数据,而不是所有的资源。 锁定的数据量越少,发生锁争用的可能性就越小,系统的并发程度就越高。 但是加锁需要消耗资源,锁的各种操作(获取锁、释放锁、检查锁状态)都会增加系统开销。 因此封锁粒度越小,系统开销就越大。 ...
分类:
数据库 时间:
2020-02-13 19:34:32
阅读次数:
93