
MYSQL
文章平均质量分 91
Harmony_Launch
这个作者很懒,什么都没留下…
展开
-
【Java学习笔记(二十一)】之Mysql启动与登录,SQL语句详细介绍
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. Mysql服务的启动与停止(一) Mysql服务的启动 可以通过cmd输入services.msc打开服务的窗口,手动停止Mysql的服务,也可以用命令的方式: 首先通过管理员权限打开DOS命令窗口,输入以下命令启动Mysql服务:net start mysql(二) Mysql服务的停止 原创 2020-08-18 15:40:29 · 733 阅读 · 0 评论 -
【Java学习笔记(二十五)】之事务要点介绍与事务的隔离级别
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 事务(一) 概述 事务管理着一个包含多个步骤的业务操作,这些步骤要么同时成功,要么同时失败。当这些步骤中出现异常错误时,事务会及时地回滚到业务初始状态,防止出现逻辑错误。(二) 操作1. 开启事务start transaction;2. 回滚rollback; 回滚到开启事务的位置、3. 提交commit;(三) 事务自动提交与手动提交1.原创 2020-08-20 14:54:21 · 460 阅读 · 0 评论 -
【Java学习笔记(二十四)】之Mysql的多表查询要点介绍
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 多表查询(一)概述 所谓的多表查询就是在多个表中同时查询,如下所示:SELECT * FROM 表1,表2; 这样,会将两个表中的所有情况的组合显示出来,这种现象叫做笛卡尔积,这其中包含着许多无用的数据,需要通过条件过滤掉。(二)多表查询的分类1. 内连接原创 2020-08-20 09:08:55 · 196 阅读 · 0 评论 -
【Java学习笔记(二十三)】之数据库的多表关系和第一,第二,第三范式要点介绍
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 多表关系(一) 概述 数据库是由多个表组成的,表中存储的数据相互之间有着现实的意义。比如说学生管理系统中,我们设置来了一个学生表和一个课程表,一个学生可以选择多门课程,一门课程也可以被多个学生选择,这就是表之间的多对多的关系。(二) 多表之间的关系1. 一对一 一种数据对应另一种数据的关系。如一个人只原创 2020-08-19 11:54:04 · 368 阅读 · 0 评论 -
【Java学习笔记(二十二)】之Mysql数据库中的约束
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 约束(一) 概述 对表中的数据进行限定,保证数据的正确性,有效性和完整性。(二) 分类主键约束 primary key非空约束 not null唯一约束 unique外键约束 foreign key二. 主键约束(一) 概述 非空且唯一,一张表只能有一个字段为主键,主键是原创 2020-08-18 17:16:14 · 176 阅读 · 0 评论 -
【Java学习笔记(一百零二)】之 MYSQL性能优化与查询优化
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. MySQL性能优化(一) 优化的风险 优化不是对一个环境进行的,而是对一个复杂的已投产系统进行的,存在一定的风险,当优化了一个问题后,另一个问题可能就会出现,因此要控制调优带来的问题在可接受的范围内。(二) 优化的需求 由于优化存在一定的风险,因此不能单纯为了优化而优化,要根据业务的需求来优化,重点原创 2021-01-07 23:54:24 · 331 阅读 · 0 评论 -
【MySQL学习笔记(十九)】之MySQL中的行锁和表锁详解
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 处理并发事务的两种方式(一) 写-写情况 在写-写情况下会发生脏写问题,任何一种隔离级别都不允许发生这种问题,在多个未提交事务相继对一条记录进行改动时,需要让它们排队执行,排队过程是通过加锁实现的。锁本质是内存中的结构,当一个事务想要对这条记录进行改动时,首先查看内存中有没有与这条记录关联的锁结构,如果没有,就会在内存中生成一个锁结构与之关联。 &nbs原创 2021-02-26 19:58:28 · 608 阅读 · 0 评论 -
【MySQL学习笔记(十八)】之事务隔离级别,MVCC, purge
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 事务隔离级别(一) 概述 由于MySQL是一个C/S架构的软件,对于同一个服务器来说,可以有多个客户端与之连接,每个客户端与服务器连接后就形成一个会话,每个客户端可以在自己的会话中发送请求,一个请求语句可能是某个事务的一部分,服务器可以同时处理来自多个客户端的多个事务。由于一个事务对应着现实世界的一次状态转换,事务执行之后必须保证数据符合现实世界的规则,这就是事务的一原创 2021-02-24 21:16:46 · 657 阅读 · 0 评论 -
【MySQL学习笔记(十七)】之 undo日志详解
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. undo日志(一) 概述 当事务执行过程中突然中止,为了保证事务的原子性,需要回滚回原来的样子,每当要对一条记录进行改动时,都需要记录下一些信息,为了回滚而记录的东西称为撤销日志,即undo日志。(二) 事务id1. 分配事务id 如果某个事务在执行过程中对某个表执行了增删改操作,那么InnoDB就会给它原创 2021-02-23 20:14:27 · 1456 阅读 · 0 评论 -
【MySQL学习笔记(十六)】之redo日志超详细讲解
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. redo日志(一) 概述 当一个事务提交后,只在内存的Buffer Pool中修改了页面,如果此时发生故障,导致内存中的数据都失效了,那么这个已提交的事务就丢失了,这是我们无法忍受的。一个简单的做法就是在事务提交完成之前,将该事务修改的所有页面都刷新到磁盘中,但是这样作非常浪费资源,因为可能修改的只是一个页中的某个字节,同时随机I/O刷新也非常地慢,因为一个事务可能对应原创 2021-02-22 18:33:15 · 2489 阅读 · 0 评论 -
【MySQL学习笔记(十五)】之 事务介绍
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 事务(一) ACID1. 原子性Atomicity 现实世界中一个不可分割的操作可能对应着数据库中若干条不同的操作,数据库中一条操作也可能被分解为若干个步骤。原子性的意思是某些操作是不可分割的整体,要做全做,要么全不做。2. 一致性Consistency 如果数据库中的数据符合现实世界中的约束,这些数原创 2021-02-19 16:35:33 · 117 阅读 · 0 评论 -
【MySQL学习笔记(十四)】之 缓冲池介绍
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. Buffer Pool(一) 概述 对于InnoDB,为了缓存磁盘中的页,向操作系统申请了一块连续的内存称为缓冲池,默认是128MB。(二) 内部组成 Buffer Pool被划分为若干个页面,页面大小与InnoDB表空间使用的页面大小一致,默认都是16KB,这些页称为缓冲页。为了更好地管理这些缓冲页,每个原创 2021-02-19 15:51:43 · 410 阅读 · 0 评论 -
【MySQL学习笔记(十三)】之 EXPLAIN语句详解
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. EXPLAIN语句(一) 概述 MySQL查询优化器在基于成本和规则对查询语句进行了优化后,会生成一个执行计划,展示了执行查询的具体方式,如多表连接的顺序,每个表采用的访问方法。EXPLAIN语句可以让我们查询出某个查询语句的具体执行计划,直接在具体的查询语句之前加上一个EXPLAIN即可。通过EXPLAIN语句,我们可以进一步地思考如何改进自己的查询语句。(二)原创 2021-02-18 21:37:57 · 1069 阅读 · 0 评论 -
【MySQL学习笔记(十二)】之 查询优化器基于规则的优化与子查询优化
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 查询优化器基于规则的优化(一) 概述 查询优化器针对查询语句根据相应的规则进行优化,转换为某种可以高效执行的形式,这个过程称为查询重写。(二) 条件化简1. 移除不必要的括号 将表达式中多余的括号去掉。2. 常量传递 若某个列和某个常量已经进原创 2021-02-17 23:30:30 · 571 阅读 · 0 评论 -
【MySQL学习笔记(十一)】之基于成本的单表查询优化计算与连接查询的优化计算
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 基于成本的优化(一) 概述 所谓查询语句的执行成本由两个方面组成,一个是I/O成本,经常使用的InnoDB和MyISAM存储引擎都是将数据和索引存储到磁盘上,当查询表中的记录时,需要先把数据或者索引加载到内存中,然后再进行操作,从磁盘到内存的时间成本为I/O成本;还有一个是CPU成本,读取记录以及检测记录是否满足对应的搜索条件等操作的时间成本为CPU成本。原创 2021-02-17 18:11:03 · 309 阅读 · 0 评论 -
【MySQL学习笔记(十)】之内连接与外连接详解
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 连接(一) 概述 本质上说,连接就是将各个表中的记录都取出来进行依次匹配,并将匹配后的组合发送给客户端,这就是连接查询。如果连接查询的结果集中包含一个表中的每一条记录与另一个表中的每一条记录相互匹配的组合,那么这样的结果集就称为笛卡尔积。MySQL连接查询的语法就是在FROM语句后面跟多个表名即可。SELECT * FROM t1,t2;(二) 连接过程&n原创 2021-02-17 11:20:49 · 1445 阅读 · 0 评论 -
【MySQL学习笔记(九)】之 单表访问方法,索引合并
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 单表访问方法(一) 访问方法 查询语句本质上是一种声明式的语法,只是告诉MySQL要获取的数据符合哪些规则,置于MySQL是如何查询出数据的是MySQL自己负责的。MySQL执行查询语句的方式称为访问男方法,同一个查询语句可以使用多种不同的访问方法来执行,不同的访问方法效率大大不同。(二) const 直接原创 2021-02-16 23:24:23 · 312 阅读 · 0 评论 -
【MySQL学习笔记(八)】之 数据目录结构介绍
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. MySQL的数据目录(一) 数据目录 MySQL服务器程序在启动时,回到文件系统的某个目录下加载一些数据,之后在运行过程中产生的数据也会存储到这个目录下的某些文件中,这个目录称为数据目录。注意,要与mysql的安装目录区分开。要确定该数据目录路径,通过系统变量datadir查看即可。SHOW VARIABLES LIKE ‘datadir’;(二) 数据目录的结原创 2021-02-16 22:38:41 · 426 阅读 · 0 评论 -
【MySQL学习笔记(七)】之B+树索引查询详解
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. B+树索引查询流程(一) 索引的代价 索引虽好,可不要贪杯哦,在时间和空间上都会有代价。空间上每建立一个索引,都要建立一棵B+树,树中的每个节点都是一个索引页,每个页的存储空间都是16KB,这将会占用很大的存储空间。时间上,对记录的增删改操作会破坏节点和记录的排序,如果建立了很多索引,那么每个索引对应的B+树都需要进行维护操作,影响性能。原创 2021-02-16 21:30:24 · 1892 阅读 · 0 评论 -
【MySQL学习笔记(六)】之InnoDB和MyISAM中的索引方案详解
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 索引(一) 概述 如果没有索引,我们在搜索记录时直接通过遍历所有的页,再遍历所有的记录来命中最终的记录,这样效率非常低。因此,我们需要使用索引提高查找的效率。(二) InnoDB中的索引方案1. 索引规则 由于各个页中的记录的存储没有规律,因此查找起来没有头绪,不知道从哪里入手。我们要找到某个记录,就必须原创 2021-02-13 22:58:35 · 321 阅读 · 0 评论 -
【MySQL学习笔记(五)】之InnoDB索引页结构详解
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. InnoDB索引页(一) 概述 页是InnoDB管理存储空间的基本单位,InnoDB为了不同的目的设计了不同类型的页,下面介绍存放表中记录的页,称为索引页。(二) 索引页结构 索引页可以划分为多个部分,有的部分占用的字节数是确定的,有的部分占用的字节数是不确定的。1. File Header 原创 2021-02-13 21:33:12 · 828 阅读 · 0 评论 -
【MySQL学习笔记(四)】之 InnoDB的四种行格式介绍,溢出列
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. InnoDB页(一) 页的概述 InnoDB是一个将表中的数据存储到磁盘上的存储引擎,真正处理数据的过程发生在内存中,需要把磁盘中的数据加载到内存中,如果处理写入或修改请求,还需要把内存中的内容刷新到磁盘上。InnoDB将数据划分为若干项,以页作为磁盘和内存之间交互的基本单位,页大小一般为16KB,即16384字节,可在初始化MySQL数据目录时指定,之后无法修改。原创 2021-02-12 18:06:21 · 698 阅读 · 0 评论 -
【MySQL学习笔记(三)】之 MySQL中的字符集和比较规则
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 字符集和比较规则(一) 概述 计算机中实际存储的是二进制数据,对于字符串数据,通过建立字符串与二进制数据的映射关系来存储,首先要界定字符范围,然后将字符映射为二进制数据的过程称为编码,将二进制数据映射为字符的过程为解码。用字符集来表示某个字符范围的编码规则,即字符集定义了哪些字符映射到哪些二进制数据的规则。 设原创 2021-02-12 16:30:28 · 787 阅读 · 0 评论 -
【MySQL学习笔记(二)】之启动选项,系统变量,状态变量
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. MySQL启动选项(一) 概述 MySQL的服务器程序和客户端程序有很多设置项,如允许同时连入的客户端数量,客户端和服务器的通信方式等等,都可以通过启动选项来设置,可以在命令行中指定,也可以在配置文件中指定,命令行的优先级大于配置文件。(二) 命令行 在命令行中指定启动选项时需要在选项名之前加上–前缀,原创 2021-02-11 19:32:31 · 277 阅读 · 0 评论 -
【MySQL学习笔记(一)】之MySQL架构,启动方式,C/S连接方式,处理请求流程
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. MYSQL介绍(一) 架构 MYSQL采用C/S架构,服务器程序直接与存储的数据交互,多个客户端程序可以连接到这个服务器程序,向服务器发送增删改查的请求,然后服务器程序对数据进行处理。(二) 服务器程序的启动1. 类UNIX系统(1) mysqld mysqld可执行文件表示MYSQL的服务器程序,原创 2021-02-10 22:48:21 · 465 阅读 · 1 评论 -
【Java学习笔记(一百零六)】之 MYSQL 数据库结构优化,硬件优化,缓存优化
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 数据库结构优化(一) 优化表结构尽量定义表字段为NOT NULL,因为在MYSQL中含有空值的列很难查询优化;对于只包含特定类型的字段,可以使用enum, set等数据类型;数值型字段的比较比字符串效率高的多,字段类型尽量使用最小的数据类型;尽量使用TINYINT, SMALLINT, MEDIUM_INT这种作为整数类型减少字段的字节数,指定宽度是没有用的,因为指定的类型标识范围时确定的;单表的字原创 2021-01-08 22:07:30 · 198 阅读 · 0 评论 -
【Java学习笔记(一百零五)】之MYSQL 索引优化,存储优化
本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 索引优化(一) 索引的介绍 索引从字面上就可以看出类似一个指向数据库中数据的指针,没有索引的时候只能通过搜索数据库中的数据来查找;通过索引,只需要查找索引中有无关联的数据就可以返回查找结果,大大提高了查找的性能。(二) 添加索引 在创建数据表的时候,可以通过KEY关键字添加索引:CREATE TABLE原创 2021-01-08 16:54:36 · 396 阅读 · 0 评论