![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
魔笛手7
这个作者很懒,什么都没留下…
展开
-
MySQL_MySQL锁机制之间隙锁
1.引入 我们接下来的话针对一种比较特殊的数据记录来进行一个操作,那么就是如果在一个情况下,要求我们的数据记录是连续的。那么当我们的数据出现了缺失,也就是产生了间隙。那么这一个时候又会出现什么样子的问题呢?,我们一起来看看。2.间隙锁案例测试(1).创建测试数据库表DROP TABLE IF EXISTS `admin`;CREATE TABLE `admin` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` var...原创 2020-06-27 12:16:08 · 553 阅读 · 0 评论 -
MySQL_MySQL锁机制之行锁理论
1.引入 我们在之前的课程中,和大家说了一下数据库锁的相关分类,上几节课程中,我们说了Myisam存储引擎的读锁和写锁,那么接下来呢,我们就一起来看一下行锁。2.行锁的特点 行锁偏向于InnoDB存储引擎,开销大,加锁慢;会出现死锁;锁定的粒度最小,发生锁冲突的概率最小,并发度也最高。3.行锁的一个基本案例(1).创建测试数据库表boysDROP TABLE IF EXISTS `boys`;CREATE TABLE `boys` ( `id` int(1...原创 2020-06-25 17:12:55 · 227 阅读 · 0 评论 -
MySQL_MySQL锁机制之写锁操作
1.引入 上一节课,我们呢,查看了在对一个表添加读锁,然后在不同的会话中查看对数据的不同操作,可以发现,它可以原创 2020-06-25 11:43:34 · 733 阅读 · 1 评论 -
MySQL_MySQL锁机制之读锁操作
1.引入 我们在之前的线程中,已经初步接触到了锁的一些相关的内容。那么当时的我们使用售票为例子,列举了在只剩一张票的时候计算机程序在实现购票中不加锁出现的各种问题。当我们再线程中加了锁以后,就可以保证计算机对这一个数据的争抢一个有序的处理。那么在MySQL数据库中。我们同样需要学习数据库的锁机制来解决一些相关的问题。2.MySQL数据库锁概述3.数据库锁的分类 按照对数据的操作类型来分,可以分为读锁和写锁。 读锁:所谓的读锁,也叫共享锁, 按照对数...原创 2020-06-21 23:44:20 · 761 阅读 · 0 评论 -
MySQL_MySQL查询截取分析之全局查询日志
1.引入 一般的情况下,我们还可以使用全局查询日志来分析我们的系统中存在的问题,但是值得注意的值,在使用全局查询日志的时候不能够在生产的环境下使用这一个功能。我们只能够在测试的环境下使用这一个功能。能够把所有的SQL的操作都可抓取出来看看其效果以及执行的流程内容。2.使用讲解以及测试(1).在配置文件中配置然后使用,主要的配置信息如下:在MySQL的配置文件下加入如下的配置信息:#开启general_log = 1#记录日志的文件路径general_log_file = /..原创 2020-06-19 00:11:21 · 145 阅读 · 0 评论 -
MySQL_MySQL查询截取分析之使用show profile进行sql分析
1.引入原创 2020-06-18 14:57:17 · 166 阅读 · 0 评论 -
MySQL_MySQL查询截取分析之批量插入数据脚本
1.引入: 我们在之前的MySQL基础中说过MySQL数据库的函数和存储过程。那么其实俩个都是使用数据库编程语言写的脚本语言。主要是为了解决批量数据的插入。其中,函数有返回值。存储过程没有返回值。2.数据测试准备(1).准备创建数据库表SQLDROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NUL..原创 2020-06-16 20:45:47 · 278 阅读 · 0 评论 -
MySQL_MySQL查询截取分析之慢查询日志
1.引入 当我们通过我们编写的sql去操作MySQL数据库的时候,我们会发现由于SQL语句本身的原因,部分的SQL语句的执行会比较慢,从而会导致整个系统的运行不流畅。那么如果说MySQL提供一个功能,专门给我们解决把执行的慢的那一部分语句给标注出来。这样我们解决问题就会更加的快速。那么下面呢,我们就一起来看一下MySQL提供的慢查询日志。2.什么是MySQL的慢查询日志? 所谓的慢查询日志,就是和其字面意思一样,是MySQL数据库提供的一种日志记录。它主要是用于记录在MySQL中响应时间...原创 2020-06-16 00:07:13 · 336 阅读 · 0 评论 -
MySQL_MySQL查询截取分析之order by关键字排序优化
1.引入原创 2020-06-15 00:03:14 · 655 阅读 · 0 评论 -
MySQL_MySQL查询截取分析之小表驱动大表
1.引入 我们之前和大家讲解了索引的基本内容以及索引的优化,那么下面呢我们就进入我们的下一个部分的内容:查询截取分析。我们在使用我们的MySQL进行实际操作的时候,是如何进行MySQL数据库优化查询的分析呢?一般我们都会经过如下的步骤:(1).运行系统,观察一段时间(一般需要大于1天),看看执行慢的SQL情况。(2).开启慢查询日志。通过这只执行的阈值,如执行时间超过几秒的就定义为慢SQL(具体几秒按照系统的情况而定),并把它抓取出来。(3).使用explain + 慢SQL分析。一般.原创 2020-06-07 01:02:59 · 333 阅读 · 0 评论 -
MySQL_MySQL索引优化之索引失效
1.引入 我们在前面的课程中讲解了数据库表如何优化索引,那么这次课程开始,我们就更加较为升入的讲解索引优化的内容。2.索引失效 (1).创建数据库表book以及添加内容-- ------------------------------ Table structure for book-- ----------------------------DROP TABLE ...原创 2020-02-24 14:24:02 · 170 阅读 · 0 评论 -
MySQL_MySQL俩表索引优化实例
1.引入 我们呢,在上一节课的时候优化了一张单一的数据库表。那么接下来呢。我们一起优化一下俩张数据库表的索引。2.创建操作的数据库 创建用户表:admin,并添加数据-- ------------------------------ Table structure for admin-- ----------------------------DROP TABL...原创 2020-02-13 16:07:36 · 797 阅读 · 0 评论 -
MySQL_MySQL单表索引优化实例
1.引入 由上节课,我们把MySQL性能分析的内容较为详细的讲了一下,那么这一节课,我们就使用实际的查询例子进行MySQL数据库的查询索的性能调优。2.索引单表优化创建数据库表内容,并添加数据记录-- ------------------------------ Table structure for book-- ----------------------------...原创 2020-02-12 20:43:46 · 306 阅读 · 0 评论 -
MySQL_SQL性能分析(重要)
1.引入 我们通过前几节课,我们对索引有了一定的认识。那么说到底的话,我们还是为了让我们操作的sql性能有一定的提高。那么我们在之前学习MySQL逻辑架构的时候,我们发现MySQL自己是自己带有优化的功能的,如:查询优化器(MySQL Query Optimizer)。那么,下面我们就一起来学习,如何进行SQL的性能分析。2.MySQL查询优化器简介以及其工作原理 MySQL数...原创 2020-02-11 20:03:59 · 523 阅读 · 0 评论 -
MySQL_MySQL数据库表的join操作
1.引入 我们的开发需求中,会经常使用到俩张数据库表的关联操作,根据我们不同的需求,需要对这俩张表进行不同的操作。无论我们怎么样操作,其结果都是这俩张表里面的内容。我们通过join的操作,可以获取数据库表里面的任何内容。下面,我们根据俩张数据库表进行理解。2.创建测试数据库表(1).创建员工表(employee)DROP TABLE IF EXISTS `employe...原创 2020-02-02 16:33:24 · 327 阅读 · 0 评论 -
MySQL_SQL性能下降的原因
1.引入 在程序的运行过程中,我们会发现这样的一个现象,程序的响应的时间较长,也就是说程序有卡顿的现象。那么在最开始的时候,程序并不存在这样的现象。那么是什么原因导致的呢? 那么有很大的可能是SQL的性能下降了,SQL性能的下降主要的表现为:执行SQL的时间长;等待sql执行的时间长。这样的情况的出现的原因比较多,主要有俩个,一个是外部原因,如:计算机磁盘空间占用较大,一个是程序内部...原创 2020-02-02 10:55:40 · 648 阅读 · 0 评论 -
MySQL_SQL语句的加载顺序
1.引入 我们知道可以通过SQL语句操作这一个MySQL数据库。但是呢,当一条SQL语句执行的时候它是怎么样被加载的?下面我们一起来看一下SQL的加载顺序。2.SQL的加载顺序。(1).程序员编写的SQL语句select distinct <select_list>from <left_table> <join...原创 2020-02-01 09:12:37 · 429 阅读 · 0 评论 -
MySQL_MySQL索引详解(重要)
引入: 在上一篇文章中,我们对索引有了一个比较基础的认识,那么接下来,我们一起来深入探讨一下索引的其他方面需要注意的知识。常见的索引类型以及相关注意事项:我们通过创建学生表(student)以及对应的相关操作来实现我们需要的测试。1.单列索引 (1).当列索引的创建 <1>.在创建数据库表的时候创建。 ①:创建普通索引,学生姓名上...原创 2020-01-06 14:20:09 · 933 阅读 · 0 评论 -
MySQL_MySQL索引基础(重要)
引入: 对于什么是索引,我们先有一个这样的认识。我们在大学里都去过图书馆,每一本图书管里面的书都是按照一定的分类来进行存放的,如按照学科类型,或者是按照图书名称等。也就是说每一本图书都会有唯一的标识来标识图书的存放位置,那么当我们需要进行查找的时候就只需要按照分类的规则就可以快速的找到我们需要的图书的。类似于这样,数据库在存放数据的时候也可以进行类似的操作。按照我们自己的查找需求...原创 2019-12-10 19:20:10 · 219 阅读 · 0 评论 -
MySQL_MySQL存储引擎简介
引入: 在介绍完MySQL的逻辑架构之后。我们发现MySQL的一大亮点就是它的存储引擎,我们可以根据我们开发中的实际要求去选用我们需要的存储引擎进行对数据库表的存储操作。但是呢并不是所有的存储引擎我们都会使用到,下面我们一起来看一下我们经常使用的俩个MySQL存储引擎InnoDB和MyISAM。存储引擎简介1.什么是存储引擎? 当客户端发送存储数据的SQL...原创 2019-12-07 21:38:33 · 319 阅读 · 0 评论 -
MySQL_MySQL逻辑架构介绍(重要)
引入: 有一定代码基础的编程人员,相信都有过这样的概念,那么就是对代码(或者是设计的逻辑架构)进行一个分层处理,分层以后,各个部分的代码就各司其职,这样的代码结构清晰,逻辑严谨。而且方便维护和查找错误。那么MySQL数据库作为当前开发设计以及使用的主流数据库,是怎么样的设计使其变得这样的优秀,来看一下MySQL数据库的逻辑架构。经典的MVC系统架构模式 ...原创 2019-12-07 11:16:54 · 394 阅读 · 0 评论 -
MySQL_MySQL常见配置以及基本操作
引入: MySQL数据库作为持续开发中常见的使用工具,我们在实际的开发中要求不仅仅能够使用程序进行对数据的基本的增删查改,也要求数据库在计算机(或者服务器)上具有较为良好的运行。一些常见的MySQL的操作以及配置是程序员必备的基础技能。MySQL常见的操作以及配置(windows)1.设置默认的root用户对应的密码(方法较多,给出俩个常用的) (1).在安...原创 2019-12-01 11:17:33 · 420 阅读 · 0 评论 -
MySQL_MySQL流程控制结构
引入: 为了解决不同的在实际开发中的不同的需求,SQL同样提供了类似java一样的流程控制结构,主要包括顺序结构,选择结构,循环结构等。流程控制语句概述流程控制语句概述:1.概述: 一般一个程序执行的时候,是从上到下,也就是说哪一条语句在前,就会先执行这一个语句,但是有时候我们的需求并不是这样的有的语句我们需要先执行,有些需要后执行,有些需要加条件...原创 2019-11-28 15:44:20 · 259 阅读 · 0 评论 -
MySQL_MySQL函数
引入: 类似于java中的方法,为了完成一个特定的功能,我们把一组预先编译好的SQL语句的集合按照SQL的语法按照特定的规则写成一个能够实现指定功能的代码段。类似这样的代码段就是函数。但是函数有一个特点,结果的返回有且仅有一个。这个就是区别与存储过程的一个内容。函数概述MySQL函数概述1.含义:一组预先编译好的SQL语句的集合,理解成批处理语句。2.使用函数的...原创 2019-11-26 23:56:48 · 189 阅读 · 0 评论 -
MySQL_MySQL存储过程(重要)
引入: 我们要实现对数据库表的一个操作,实现这一个需要使用多条SQL语句进行操作。同时,这样的操作在我的程序中是使用比较频繁的。回想我们以前学习java的时候。我们需要需要完成一个特定的功能,而这一个功能使用的频率比较多。那么这一个时候我们是选用了把实现的代码抽取出来,写成一个方法,每当我需要实现这一个功能的时候就去调用这一个方法即可。那么在数据库中有没有类似的操作呢?可以实现对...原创 2019-11-25 23:58:33 · 3250 阅读 · 0 评论 -
MySQL_MySQL变量
MySQL中的变量MySQL中的变量1.概述:类似于java中的变量的概念,用于存储一些变化的数值存储空间和存储值叫变量。2.MySQL中的变量分类 (1).系统变量: 全局变量 会话变量 (2).自定义变量: 用户变量 局部变量MySQL中变量详解1.系统变量系统变量 1.说明:变量由系统定义,不是用户定义,属于服务器层面。...原创 2019-11-24 21:26:34 · 246 阅读 · 0 评论 -
MySQL_MySQL视图(重点)
视图引入: 有俩张数据库的表,一张是用户信息内容表,一张是用户操作的权限表。当一个用户在登录了以后,系统需要提供俩张数据库表中的对应的内容。我要实现获取这俩张表时间有对应关系的数据内容,我就必须分别查询出用户,然后在去权限表中查询出来对应的权限,如果有一种方法可以实现不用分开查询,我直接可以获取用户表和权限表合起来的这一张大表,然后我在去查询里面的内容。这样就方便多了...原创 2019-11-21 14:00:29 · 362 阅读 · 1 评论 -
MySQL_MySQL事务(重点)
一、事务引入: 我们在日常生活中,有过这样的操作,如你要给对方转钱。这一个完整的过程应该分为俩个部分:把你的钱从你账户中扣除,接着再把你转的钱加到你要转的对象上的账户上。如果说,你在转钱的过程中,钱从你的账户上扣除了,接着发生了意外。那么这一个时候,只能够有俩种情况,1.钱打到了对方的账户上,表示这一个过程完整的执行了;2.钱又回到了你的账户上,表示这一个过程没有执...原创 2019-11-21 11:28:25 · 400 阅读 · 1 评论 -
MySQL_MySQL之标识列
引入: 如果我们在我们的数据库表的列中,每一条记录中的某一个字段和其他条记录的该字段存在着一个某一个特定的关系,而且这一个关系可以使用一个简单的数学表达式表示出来。这一个时候,我们就可以使用标识列。类似于主键的自增策略。标识列概述标识列概述:标识列又称为自增长列含义:可以不用手动的插入值,系统提供默认的序列值特点:1、标识列必须和主键搭配吗?不一定,但要求...原创 2019-11-19 20:20:17 · 1352 阅读 · 0 评论 -
MySQL_MySQL之常见约束
引入: 我们在向数据库中的数据表添加数据的时候,有时候会添加一些非法的数据。而且这一些数据是可以添加进去的,但是,有些的确是属于非法或者是不对的。那么,这一些数据在进行添加的时候我们就应该不让数据保存到数据库中,为了实现这一个操作。数据库给了一个技术——约束。MySQL常见的几种约束 含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性分类:...原创 2019-11-19 14:23:28 · 195 阅读 · 0 评论 -
MySQL_MySQL数据类型
MySQL中常见数据类型的介绍数值型: 整型 小数: 定点数 浮点数字符型: 较短的文本:char、varchar 较长的文本:text、blob(较长的二进制数据)日期型: 保存基本时间格式: date只保存日期 time 只保存时间 year只保...原创 2019-11-19 13:13:47 · 217 阅读 · 0 评论 -
MySQL_MySQL之DDL概述库和表相关操作
DDL概述DDL:数据定义语言库和表的管理一、库的管理创建、修改、删除二、表的管理创建、修改、删除创建操作关键字: create修改操作关键字: alter删除操作关键字: drop一、库的管理1.数据库的创建数据库创建:语法:create database [if not exists]库名;如:创建库Books2、库的修改...原创 2019-11-18 22:02:12 · 172 阅读 · 0 评论 -
MySQL_MySQL之DML之数据库表删除操作
操作数据库表结构内容如下:女生表,beauty表男生表,boyds表数据库删除操作数据库内容的删除操作方式1:使用delete关键字1.使用的关键字:delete2.单表的删除(经典的删除操作) delete from 表名 where 筛选条件3.多表的删除【补充】 sql92: delete 表1的别名,表2的别名 from 表1 别名...原创 2019-11-16 10:13:47 · 323 阅读 · 0 评论 -
MySQL_MySQL之DML之数据库表修改操作
操作数据库表结构内容如下:女生表,beauty表男生表,boyds表数据库修改操作1.修改单表的记录(经典操作)语法:update 表名 set 列=新值,列=新值,... where 筛选条件;2.修改多表的记录【补充】(1).sql92语法:update 表1 别名,表2 别名 set 列=值,... where 连接条件 and 筛选条件;(...原创 2019-11-15 00:08:00 · 331 阅读 · 0 评论 -
MySQL_MySQL_DML概述 以及数据添加操作
操作数据库表结构内容如下:女生表,beauty表DML语言概述DML表示的是数据库操作的语言,主要有以下操作:数据操作语言:插入(或者添加)使用的关键字:insert修改(或者更新)使用的关键字:update删除 使用的关键字:delete插入操作1插入操作:----->方式1(经典的插入)1.基本语法:语法:insert into 表...原创 2019-11-12 23:48:25 · 180 阅读 · 0 评论 -
MySQL_MySQ联合查询
查询测试表结构内容如下:员工表(部分),employees:管理员表,admin用户表,userMySQL联合查询MySQL联合查询关键字:union 联合 合并:将多条查询语句的结果合并成一个结果语法:查询语句1union查询语句2union...应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致...原创 2019-11-10 21:37:52 · 187 阅读 · 0 评论 -
MySQL_MySQL分页查询(重点)
查询测试表结构内容如下:员工表(部分),employees:MySQL数据分页显示应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求。语法: select 查询列表 from 表 [join type] join 表2 on 连接条件 where 筛选条件 group by 分组字段 having 分组后的筛选 order by 排序的字段】 ...原创 2019-11-10 20:56:16 · 348 阅读 · 0 评论 -
MySQL_MySQL其他常见子查询select,from,exists后子查询
查询测试表结构内容如下:员工表(部分),employees:部门表(部分),departments工资等级表,job_gradesselect后的子查询注意!!!select后面的子查询结果仅仅支持标量子查询。使用测试1:查询每个部门的员工个数from后面的子查询注意!!!将子查询结果充当一张表,要求必须起别名。使用测试1:查询每个部门的平均工资...原创 2019-11-10 20:05:34 · 417 阅读 · 0 评论 -
MySQL_MySQL基础查询(DQL)
创建测试使用数据库表,在数据库名为bms数据库中。表结构如下:数据内容:创建表SQL以及导入数据使用SQL:CREATE TABLE `note` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `author` varchar(255) DEFAULT NULL...原创 2019-09-17 19:58:29 · 312 阅读 · 0 评论 -
MySQL_MySQL基础命令以及MySQL语法规范
MySQL常见命令1.查看当前所有的数据库show databases;2.打开指定数据库use 数据库名;3.查看当前库的所有表show tables;4.查看其他库的所有表show tables from 库名;5.在指定的数据库中创建一张数据表:,如创建学生表。格式:use 数据库名create table 表名( ...原创 2019-09-16 20:48:23 · 220 阅读 · 0 评论