Mysql
文章平均质量分 77
jakiechaipush
小白进化中
展开
-
高性能业务表结构设计和索引知识深化
范式来自英文Normal Form,简称NF。要想设计一个好的关系,必须使关系满足一定的约束条件,此约束已经形成了规范,分成几个等级,一级比一级要求得严格。满足这些规范的数据库时简洁的,结构清晰的。第一范式(1NF)第二范式(2NF)第三范式(3NF)巴斯-科德范式(BCNF)第四范式(4NF)第五范式(5NF,又称完美范式)(重点是前面的3个范式)原创 2023-10-07 14:37:29 · 90 阅读 · 0 评论 -
MVCC和BufferPool缓存机制
然后mysql会从日志版本链的最新的数据开始向下遍历,这个例子先从上面第一个蓝色的开始,取出其事务ID为300,到事务集合中去比对,发现位于黄色的区域(即有可能还是未提交),然后判断是否在事务ID的read-view数组中(该数组前面说过是由活跃事务的ID数组以及最大已提交事务组成),目前由第一张事务的执行情况图我们可以看出,目前事务ID为1的read-view为。通常来说数据库中的缓冲池是通过LRU算法来进行管理的,即最频繁使用的页在LRU列表的前端,而最少使用的页在LRU列表的尾端。原创 2023-10-07 10:35:10 · 1056 阅读 · 1 评论 -
Mysql调优:深入理解Mysql索引底层数据结构与算法
答:会按照建立索引的顺序来依次排序,如果第一个字段已经能够排序,后面的字段就无需考虑了,如果存在多个相同的第一个索引列的数据,那么这几个数据之间再使用第二个索引进行排序,依次类推直到排序完成。(这也是最左前缀法则的原理)索引放在MYI文件中,MYD文件中,MyISAM索引文件和数据文件时分离开的。(MyISam的主键为非聚集索引)索引是帮助Mysql高效获取数据的排好序的数据结构。Mysql索引底层数据结构采用的是B+ tree。MyISAM存储引擎索引实现。联合索引底层是如何排序的?原创 2023-09-20 14:11:28 · 73 阅读 · 0 评论 -
Mysql锁
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。原创 2023-09-08 10:55:18 · 608 阅读 · 1 评论 -
Mysql触发器
触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,触发并执行触发器中定义的sql语句集合。触发器可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语级触发。触发器类型new和oldinsert型触发器new 表示将要或者已经新增的数据update型触发器old表示修改之前的数据,new表示将要或已经修改后的数据。原创 2023-09-07 15:36:29 · 1286 阅读 · 0 评论 -
Mysql存储过程与存储函数
存储过程是事先经过编译并存储在数据库中的一段SQL集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库SQL语言层面的代码封装和重用。原创 2023-09-07 15:08:37 · 284 阅读 · 0 评论 -
Mysql视图
视图(view)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗来讲,视图只保存了查询SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就是落在创建这条SQL的查询语句上。原创 2023-09-07 13:09:59 · 328 阅读 · 0 评论 -
SQL优化
上图中,page1和page2已经插满了数据,现在继续插入id为50的数据,由于主键顺序排列的关系,50行是不能直接插入到page3的,而只能插入到47之后,但47之后已经没有位置了,此时数据库会找到page1的50%位置,然后把后半部分数据,放到page3中,接着50放入47后面。对于limit来说,一个常见非常头疼的问题是limit 2000000,10,此时需要mysql排序前200010记录,仅仅返回2000000-2000010的记录,其它记录丢弃,查询排序的代价非常大,这里可以使用。原创 2023-09-06 12:52:18 · 86 阅读 · 0 评论 -
mysql索引
索引(index)是帮助mysql高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据上实现高级查找算法,这种数据结构就是索引。优势劣势提高数据检索的效率,降低数据库的IO成本索引列也是需要占用空间的通过索引列对数据进行排序,可以降低数据的排序成本,降低CPU的消耗索引大大提高了查询效率,同时却降低更新表的速度,如对表进行Insert、Update、Delete时,效率降低。原创 2023-09-05 14:26:58 · 252 阅读 · 0 评论 -
Mysql事务
事务时一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。(默认Mysql的事务是自动提交的,也就是说,当执行一条DML语句,Mysql会立即隐式的提交事务)比较典型的案例就是银行转账。原创 2023-09-01 14:19:10 · 106 阅读 · 0 评论 -
Mysql多表操作
在项目开发中,在进行数据库表结构设计是,会根据业务需求和业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种一对多(多的一方,外键指向一的主键)多对多(通过中间表来表示两表之间的关系)一对一(用于单表拆分,将一张表的基础字段放在一张表中,其它详情字段放在另一张表中,以提高操作效率)多表查询指从多张表中查询数据(就会出现迪卡尔积现象),在多表查询时需要消除无效的笛卡尔积。原创 2023-09-01 13:32:00 · 735 阅读 · 2 评论 -
数据库约束
概念:约束时作用于表中子段上的规则,用于限制存储在表中的shuju目的:保证数据库中数据的正确、有效性和完整性分类:约束描述关键字非空约束限制该字段不能为nullNOT NULL唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE主键约束主键时一行数据的唯一标识,要求非空且唯一默认约束保存数据时,如果未指定该字段的值,则采用默认值Default检查约束保证字段值满足某一个条件check外键约束用来让两张表的数据之间建立连接,保证数据的一致性和完整性。原创 2023-08-31 13:51:13 · 1163 阅读 · 0 评论 -
DCL介绍
DCL英文全称为(数据控制语言),用来管理数据库用户、控制数据库的访问权限。原创 2023-08-31 13:26:50 · 185 阅读 · 0 评论 -
DQL语句的执行顺序
DQL语句的通用结构如下所示。where 条件列表。原创 2023-08-31 13:09:58 · 121 阅读 · 0 评论