针对对象
单个列
组成
编码集_字符集_是否区分大小写,例如 utf8mb4_unicode_ci
utf8mb4_unicode_ci 与 utf8mb4_general_ci
utf8mb4_unicode_ci是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序
utf8mb4_general_ci没有实现Unicode排序规则,在遇到……继续阅读 »
tianlan
10个月前 (04-24) 398浏览 0评论
0个赞
数据库内容
表 t
id(主键)
c(普通索引)
d(无索引)
5
5
5
10
10
10
15
15
15
20
20
20
25
25
25
基本概念
间隙锁
间隙锁是事务隔离级别为 可重复读 的条件下的东西
间隙锁是加在主键上的
间隙锁是用来解决幻读问题的
-- 以下代码会上间隙锁 (5,10)
-- 上锁后……继续阅读 »
tianlan
11个月前 (04-21) 414浏览 0评论
0个赞
前言
<=> 这个操作符比较少用,以至于上次我看到他都不知道其作用。所以记录一下。
描述
<=> 严格比较两个NULL值是否相等
备注
两个操作码均为NULL时,其所得值为1;而当一个操作码为NULL时,其所得值为0
参考
https://m.runoob.com/mysql/mysql-operator.html
……继续阅读 »
tianlan
11个月前 (04-19) 359浏览 0评论
0个赞
引言
不同的引擎对于索引有不同的支持:Innodb和MyISAM默认的索引是Btree索引;而Mermory默认的索引是Hash索引。
hash 索引的优点
所谓Hash索引,当我们要给某张表某列增加索引时,将这张表的这一列进行哈希算法计算,得到哈希值,排序在哈希数组上。所以Hash索引可以一次定位,其效率很高,而Btree索引需要经过多次的磁盘IO,但是i……继续阅读 »
tianlan
11个月前 (04-19) 331浏览 0评论
0个赞
联合索引示意图
最左前缀原理
通过上图我们可以发现,联合索引和单列索引差不多,只不过联合索引存储的关键字包含了多个列。
最左前缀原理:联合索引的排序是有优先级的,越在左边的列,优先级越高,如上图所示:
会优先按照数字排序,在数字相等时,会根据字母进行排序。
……继续阅读 »
tianlan
11个月前 (04-17) 290浏览 0评论
0个赞
MyISAM
主键索引(主索引)
辅助索引(Secondary key)
在MyISAM中,主索引和辅助索引(Secondary key)在结构上没有任何区别,只是主索引要求key是唯一的,而辅助索引的key可以重复
InnoDB
主键索引
MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。而在InnoDB中,表数据文件本身就是按B+T……继续阅读 »
tianlan
11个月前 (04-16) 318浏览 0评论
1个赞
B树(B-tree)
注意:B-树和B树是同一个东西。
B树和平衡二叉树稍有不同的是,B树属于多叉树又名平衡多路查找树(查找路径不只两个),数据库索引技术里大量使用者B树和B+树的数据结构,让我们来看看他有什么特点。
B树性质
(1)排序方式:所有节点关键字是按递增次序排列,并遵循左小右大原则;
(2)子节点数:非叶节点的子节点数>1,且<=M ……继续阅读 »
tianlan
11个月前 (04-14) 329浏览 0评论
0个赞
是什么
死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环。
检测死锁
数据库系统实现了各种死锁检测和死锁超时的机制。InnoDB存储引擎能检测到死锁的循环依赖并立即返回一个错误。
死锁恢复
死锁发生以后,只有部分或完全回滚其中一个事务,才能打破死锁,InnoDB目前处理死锁的方法是,将持有最少行级排他锁的事务进行回滚。……继续阅读 »
tianlan
11个月前 (04-12) 398浏览 0评论
0个赞
引入
外键表示一个表中的字段被另一个表中的一个字段引用。外键对相关表中的数据造成了限制,使MySQL能够保持参照完整性。
比如学生和班级表,学生表完全依赖班级表,我们可以通过外键约束让学生表与班级表产生关联,当班级表数据变化时影响学生表。
父表和子表储存引擎要一致
使用InnoDB引擎支持外键约束
外键更与主表列类型一致
外键列使用索引(数据库会自动添……继续阅读 »
tianlan
11个月前 (04-11) 360浏览 0评论
0个赞
优势 & 劣势
虽然索引大大提高了查询速度,同时却会降低更新表的速度。
索引和约束的区别
约束是为了保证表数据的完整性,索引是为了提高查询效率,两者作用不一样!其次种类也不一样。
Mysql 每次查询最多只会运用一个索引
所以需要合理建立联合索引
尽量扩展索引,而不要新建索引
外键索引可以 nullable
在 Laravel 社区学习的时候 ……继续阅读 »
tianlan
11个月前 (04-11) 316浏览 0评论
0个赞