
数据库
文章平均质量分 90
0start的博客
这个作者很懒,什么都没留下…
展开
-
MySQL学习笔记(十九)——MySQL 事务日志
为每一个事务分配一个页,是非常浪费的(除非你的事务非常长),假设你的应用的TPS(每秒处理的事务数目)为1000,那么1s就需要1000个页,大概需要16M的存储,1分钟大概需要1G的存储。可以发现每次对数据的变更都会产生一个undo log,当一条记录被变更多次时,那么就会产生多条undo log,undo log记录的是变更前的日志,并且每个undo log的序号是递增的,那么当要回滚的时候,按照序号依次向前推,就可以找到我们的原始数据了。了,当事务提交时,并不会立刻删除undo页。原创 2023-04-08 10:45:59 · 336 阅读 · 0 评论 -
MySQL学习笔记(十八)—— 事务基本知识
但。原创 2023-04-08 10:45:08 · 549 阅读 · 0 评论 -
MySQL学习笔记(十七)—— 数据库设计规范
【建议】表中所有字段尽量都是。原创 2023-04-08 10:43:34 · 344 阅读 · 0 评论 -
MySQL学习笔记(十六)——索引优化和查询优化
理解方式一:索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数据,那就不需要读取行了。一个索引包含了满足查询结果的数据就叫做覆盖索引。理解方式二:非聚簇复合索引的一种形式,它包括在查询里的SELECT、JOIN和WHERE子句用到的所有列(即建索引的字段正好是覆盖查询条件中所涉及的字段)。简单说就是,索引列+主键包含SELECT 到 FROM之间查询的列。原创 2023-04-08 10:42:01 · 734 阅读 · 0 评论 -
MySQL学习笔记(十五)——索引的创建和设计原则
索引(Index)是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据, 这样就可以在这些数据结构的基础上实现高级查找算法。索引可以提高查询的速度,但是会影响插入记录的速度。这种情况下最好的办法是先删除表中的索引,然后插入数据,插入完成后再创建索引。原创 2023-04-08 10:28:51 · 1205 阅读 · 0 评论 -
MySQL学习笔记(十四)——索引的数据结构
索引(Index)是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据, 这样就可以在这些数据结构的基础上实现高级查找算法。索引可以提高查询的速度,但是会影响插入记录的速度。这种情况下最好的办法是先删除表中的索引,然后插入数据,插入完成后再创建索引。原创 2023-04-08 10:30:33 · 675 阅读 · 0 评论 -
MySQL学习笔记(十三)—— 存储引擎
MySQL从3.23.34a开始就包含InnoDB存储引擎。大于等于5.5之后,默认采用InnoDB引擎。InnoDB是MySQL的 默认事务型引擎,它被设计用来处理大量的短期(short-lived)事务。可以确保事务的完整提交(Commit)和回滚(Rollback)。除了增加和查询外,还需要更新、删除操作,那么,应优先选择InnoDB存储引擎。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。数据文件结构。原创 2023-04-08 10:26:43 · 130 阅读 · 0 评论 -
MySQL学习笔记(十二)——逻辑架构
1. 逻辑架构剖析1.1 服务器处理客户端请求那服务器进程对客户端进程发送的请求做了什么处理,才能产生最后的处理结果呢?这里以查询请求为例展示:下面具体展开看一下:1.2 ConnectorsConnectors,指的是不同语言中与SQL的交互。MySQL首先是一个网络程序,在TCP之上定义了自己的应用层协议。所以要使用MySQL,我们可以编写代码,跟MySQL Server建立TCP连接,之后按照其定义好的协议进行交互。或者比较方便的办法是调用SDK,比如Native C API、JDBC、原创 2023-04-08 10:27:43 · 297 阅读 · 0 评论 -
MySQL学习笔记(十一)—— 用户和权限
对此连接上进来的每个请求,服务器检查该请求要执行什么操作、是否有足够的权限来执行它,这正是需要授权表中的权限列发挥作用的地方。,db表是下一安全层级,其中的权限限定于数据库层级,在该层级的SELECT权限允许用户查看指定数据库的所有表中的数据;角色授权后,可以对角色的权限进行维护,对权限进行添加或撤销。当我们需要对业务重新整合的时候,可能就需要对之前创建的角色进行清理,删除一些不会再使用的角色。而且,MySQL的权限控制功能十分完善,应该尽量利用,可以提高效率,而且安全可靠。的插件,该字段不能为空。原创 2023-04-08 10:21:18 · 1125 阅读 · 0 评论 -
MySQL学习笔记(十)—— 视图
视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。操作简单。原创 2022-11-25 21:02:19 · 240 阅读 · 0 评论 -
MySQL学习笔记(九)—— 约束
约束是表级的强制规定。可以在创建表时规定约束(通过语句),或者在表创建之后通过语句规定约束。原创 2022-11-16 18:19:12 · 244 阅读 · 0 评论 -
MySQL学习笔记(八)—— MySQL数据类型
整数类型字节有符号数取值范围无符号数取值范围TINYINT1-128~1270~255SMALLINT20~65535MEDIUMINT30~16777215INT、INTEGER4-231~231-1)BIGINT8MySQL中的定点数类型只有 DECIMAL 一种类型。数据类型字节数含义M+2字节有效范围由M和D决定使用 DECIMAL(M,D) 的方式表示高精度小数。其中,M被称为精度,D被称为标度。例如,原创 2022-11-15 20:36:33 · 1139 阅读 · 0 评论 -
MySQL学习笔记(七)——数据处理之增删改
数据处理之增删改原创 2022-11-09 13:46:04 · 336 阅读 · 0 评论 -
MySQL学习笔记(六)—— 创建和管理表
*DML(INSERT \ DELETE \ UPDATE \ SELECT)**的操作默认情况,一旦执行,也是不可回滚的。由于 DDL 的原子化特性,要么全部执行,要么全部不执行,所以 book1 也不会被删除。在MySQL 8.0版本中,InnoDB表的DDL支持事务完整性,即 DDL操作要么成功要么回滚。,但 TRUNCATE 无事务且不触发 TRIGGER,有可能造成事故,故**如果MySQL中已经存在相关的数据库,则忽略创建语句,不再创建数据库。列名(或字段名),数据类型,原创 2022-11-08 20:28:31 · 183 阅读 · 0 评论 -
MySQL学习笔记(五)—— 子查询
如果子查询的执行依赖于外部查询,通常情况下都是因为子查询中的表用到了外部的表,并进行了条件关联,因此每执行一次外部查询,子查询都要重新计算一次,这样的子查询就称之为 关联子查询。相关子查询按照一行接一行的顺序执行,主查询的每一行都执行一次子查询。)原创 2022-11-06 20:36:35 · 240 阅读 · 0 评论 -
MySQL学习笔记(四)—— 聚合(分组)函数
MySQL学习笔记(四)—— 聚合(分组)函数原创 2022-11-01 20:23:19 · 661 阅读 · 0 评论 -
MySQL学习笔记(三)—— 单行函数
MySQL学习笔记(三)—— 单行函数原创 2022-10-31 21:17:29 · 204 阅读 · 0 评论 -
MySQL学习笔记(二)—— 多表查询
MySQL学习笔记(二)—— 多表查询原创 2022-10-30 21:51:12 · 315 阅读 · 0 评论 -
MySQL学习笔记(一)—— 查询语句基础
MySQL学习笔记(一)—— 查询语句基础原创 2022-10-30 21:49:18 · 188 阅读 · 0 评论