
MySQL文库
Mysql笔记
smileNicky
java程序员,软件工程专业,专注于sql调优,SpringBoot,spring框架学习,个人邮箱nickypm@foxmail.com,公众号nickymp
-
原创 MySQL系列之二进制日志Binlog学习笔记
在上一篇博客的学习,我们知道了InnoDB存储引擎的两种事务日志,redo log是InnoDB特有的功能,而MySQL也是有自己的日志机制的,也即本文学习的binlogbinlog(二进制日志):binary log,简称是binlog,binlog记录所有数据库表结构变更以及表数据修改,而不会记录SELECT和SHOW这类操作,数据保存的是二进制数据binlog以事件的形式保存,还包括sql执行所需的时间等等信息,开启Binlog日志有以下两个最重要的使用场景2020-10-16 15:01:381460
8
-
原创 MySQL系列之事务日志Redo log学习笔记
Redo log:被称之为重做日志,是在数据库发生意外时,进行数据恢复,redo log会备份是事务执行过程中的修改数据,redo log备份的是事务过程中最新的数据位置2020-10-15 18:28:241430
3
-
原创 MySQL系列之事务日志Undo log学习笔记
undo log是mysql中两种比较重要的事务日志,另外一种是redo log,undo log顾名思义,是一种用于撤销回退的日志,用于事务没提交之前,会将要修改的记录存放到 Undo 日志文件里,当事务回滚时或者数据库崩溃时,可以利用 Undo 日志回退事务2020-10-15 14:59:142454
13
-
原创 MySQL系列之体系结构原理学习笔记
MySQL系列之体系结构原理学习笔记引用来自官网的图,MySQL Server架构从上到下依次为网络连接层(Connectors)、服务层(MySQL Server)、存储引擎层(Plugable Storage Engines)、系统文件层(File System)2020-10-14 15:13:596714
31
-
原创 MySQL基础之事务编程学习笔记
MySQL基础之事务编程学习笔记在学习《MySQL技术内幕:SQL编程》一书,并做了笔记。本博客内容是自己学了《MySQL技术内幕:SQL编程》一章根据自己的理解做的笔记,内容和书本并不一致,不过书本实验都经过自己验证,基于MySQL5.7版本。做笔记的目的是方便自己复习,同时分享出来或许对其他人或许有点帮助提到事务肯定会想到事务的4个特性ACID,要保证业务的正常使用,必须保证ACID,AC...2020-01-01 12:08:284168
0
-
原创 MySQL基础之STRAIGHT JOIN用法简介
MySQL基础之STRAIGHT JOIN用法简介2019-11-10 11:49:452533
0
-
原创 MySQL基础之Natural Join用法
Natural join即自然连接,natural join等同于inner join或inner using,其作用是将两个表中具有相同名称的列进行匹配2019-11-10 11:48:484164
0
-
原创 MySQL基础之自连接用法简介
MySQL系列之自连接简介,MySQL自连接操作,没有特定的关键字,所谓自连接指的是同一个表不同实例之间的join操作2019-11-10 11:48:221090
0
-
原创 MySQL SQL调优系列之执行计划学习笔记
继上一篇博客《MySQL的索引知识学习笔记》之后,我再记录一篇MySQL执行计划方面的博客,本博客是我在学习尚硅谷的学习教程后,做的笔记,当然我不是为了所谓宣传,仅仅是学习记录的笔记。本来可以不分享出来,不过,分享出来的笔记不仅可以给网上的学习者参考学习,同时写在csdn比较方便,可以支持图片上传,也方便自己以后查找复习附录:我创建的数据库方面的专栏SQL调优方面的专栏MySQL知识方面的...2019-09-15 16:13:111291
0
-
原创 MySQL SQL调优系列之索引知识学习笔记
继我的上篇博客:Oracle索引知识学习笔记之后,再记录一篇MySQL的索引知识学习笔记,本博客是我在学习尚硅谷的学习教程后,做的笔记,当然我不是为了所谓宣传,仅仅是学习记录的笔记,本来可以不分享出来,分享出来的目录仅仅可以给网上的学习者参考学习,同时写在csdn比较方便,支持图片上传,也方便自己以后查找复习文章目录一、索引的概念二、索引分类三、索引用法四 、索引架构简介五、索引适用的情况六、索...2019-09-15 16:11:131736
2
-
原创 MySQL SQ调优系列之逻辑架构简介
Mysql服务器逻辑架构图:第一层结构主要处理客户端与mysql服务端的连接、授权认证、安全等;第二层是Mysql服务端的核心,功能包括查询解析、分析、优化、缓存等,存储过程、触发器、视图等都在这一层实现;第三层的存储引擎主要负责数据存储和提取,存储引擎不会去解析sql,不同存储引擎之间不会通讯,只会简单地响应上层服务器的请求一、连接管理每个客户端连接成功,都会在服务器进程中拥有一个线程,...2019-08-31 17:28:354865
4
-
原创 MySQL基础之数据库的锁机制
在并发访问情况下,很有可能出现不可重复读等等读现象。为了更好的应对高并发,封锁、时间戳、乐观并发控制(乐观锁)、悲观并发控制(悲观锁)都是并发控制采用的主要技术方式。锁分类①、按操作划分:DML锁,DDL锁 ②、按锁的粒度划分:表级锁、行级锁、页级锁 ③、按锁级别划分:共享锁、排他锁 ④、按加锁方式划分:自动锁、显示锁 ⑤、按使用方式划分:乐观锁、悲观锁乐观锁和悲观锁乐观并发控制和悲观并发控2018-01-02 14:44:025450
2
-
翻译 MySQL应用之CROSS JOIN用法简介教程
文章目录1. cross join简介2. cross join用法1. cross join简介MySQL cross join是mysql中的一种连接方式,区别于内连接和外连接,对于cross join连接来说,其实使用的就是笛卡尔连接。在MySQL中,当CROSS JOIN不使用WHERE子句时,CROSS JOIN产生了一个结果集,该结果集是两个关联表的行的乘积。通常,如果每个表分别具...2019-11-02 12:54:441221
0
-
原创 MySQL基础之字符类型学习笔记
* 字符集:字符集就是字符的集合,例如GB2312是中国国家标准的简体中文字符集,GB2312收录简化汉字(6763个)及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。2019-10-25 22:27:03739
0
-
原创 MySQL基础之日期和时间类型笔记
最近在看《MySQL技术内幕:SQL编程》并做了笔记,这是一篇笔记类型博客,分享出来方便自己复习,也可以帮助其他人一、日期时间类型所占空间对比各种日期时间数据类型所占的空间:类型所占空间DATETIME8字节DATE3字节TIMESTAMP4字节YEAR1字节TIME3字节二、DATETIME和DATE对比DATETIME占用8...2019-10-25 22:26:27751
0
-
原创 MySQL基础之数字类型学习笔记
数字类型最近在看《MySQL技术内幕:SQL编程》并做了笔记,所以本博客是一篇笔记类型博客,分享出来方便自己复习,也可以帮助他人整型类型占用空间最小值(SIGNED)最大值(SIGNED)最小值(UNSIGNED)最大值(UNSIGNED)TINYINT1-1281270255SMALLINT2-3276832767065535...2019-10-25 22:25:39799
0
-
原创 MySQL基础之unsigned和zerofill属性
UNSIGNED这个属性就是标记数字类型是无符号的,和C/C++语言中的unsigned含义是一样的,int signed的类型范围是-2147483648~2147483648,而int unsigned的范围是0~4294967295这个属性使用时候可以在建表语句、加字段语句或者查询sql里也是可以的create table t (a int unsigned)ENGINE=INNODB...2019-10-25 22:25:19924
0
-
原创 MySQL基础之SQL_MODE学习笔记
最近在学习《MySQL技术内幕:SQL编程》并做了笔记,本博客是一篇笔记类型博客,分享出来,方便自己以后复习,也可以帮助其他人SQL_MODE:MySQL特有的一个属性,用途很广,可以通过设置属性来实现某些功能支持 # 全局的SQL_MODE SELECT @@global.sql_mode; # 当前会话的SQL_MODE SELECT @@session.sql_mode; S...2019-10-25 22:24:56817
0
-
原创 MySQL基础之数据库应用类型学习笔记
【数据库的应用类型】最近在学习《MySQL技术内幕:SQL编程》并做了笔记,本博客是一篇笔记类型博客,分享出来,方便自己以后复习,也可以帮助其他人对于sql开发人员来说,需要了解开发的数据库应用于哪种类型,下面对数据库的应用做了分类数据库的应用类型:OLTP(OnLine transaction processing,联机事务处理)OLTP也被称之为面向交易的处理系统,其基本特征是立即...2019-10-24 08:38:18814
0
-
原创 MySQL基础之变量介绍和用法简介
本博客介绍一下MySQL中变量的用法和注意细节文章目录一、用户变量1.1、用户变量定义1.2、用户变量用法a)、设置用户变量b)、查询用户变量二、系统变量2.1 系统变量简单介绍2.2 系统变量用法简介一、用户变量1.1、用户变量定义MySQL官方手册里是将变量分为系统变量和用户变量的,用户变量就是在一个语句里加在用户自定义的变量,然后这个变量可以赋值给其它变量,或者在另外一个语句里调用等...2019-09-19 23:33:551360
0
-
原创 MySQL应用之实现Oracle rank()排序
MySQL5.7版本没有提供类似Oracle的分析函数,比如用于排序的over函数,oracle开窗函数over(…)使用的话一般是和order、partition by、row_number()、rank()、dense_rank()几个函数一起使用,具体的用法可以参考我之前的博客oracle开窗函数用法简介假如要获取成绩排序第一的学生信息,可以用如下的SQL:select * from...2019-09-19 23:33:251042
0
-
原创 Mysql应用之实现树形递归查询
最近在做项目迁移,Oracle版本的迁到Mysql版本,遇到有些oracle的函数,mysql并没有,所以就只好想自定义函数或者找到替换函数的方法进行改造。Oracle递归查询oracle实现递归查询的话,就可以使用start with … connect byconnect by递归查询基本语法是:select 1 from 表格 start with ... connect by pr...2019-02-14 23:05:002572
0
-
原创 Mysql应用之类似Oracle null first/last用法
最近在做项目迁移,Oracle版本的迁到Mysql版本,遇到有些oracle的函数,mysql并没有,所以就只好想自定义函数或者找到替换函数的方法进行竟然。oracle做数据排序的时候,有时候可以用nulls first或者nulls last将null值排在最前或者最后。oracle方法:null值排在最前select * from A order by a desc null firs...2019-02-14 23:04:242046
0
-
原创 mysql应用之类似oracle rownum写法
rownum是oracle才有的写法,rownum在oracle中可以用于取第一条数据,或者批量写数据时限定批量写的数量等mysql取第一条数据写法 SELECT * FROM t order by id LIMIT 1;oracle取第一条数据写法 SELECT * FROM t where rownum =1 order by id;ok,上面是mysql和oracle取第一...2019-09-05 23:56:001270
0
-
原创 Oracle和Mysql语法异同整理笔记
文章目录(1) 模糊匹配(2) 删除数据(3) 时间函数(4) 关键字问题(5) 递归查询(6) 排序问题(7) 空值返回0(8) 取最大值(9) 列转换函数(10) 类型转换函数最近在做项目迁移,Oracle版本的迁到Mysql版本,遇到有些oracle的函数,mysql并没有,所以就只好想自定义函数或者找到替换函数的方法进行改造。所以本博客主要介绍Oracle兼容mysql改造方式以及注意...2019-02-15 00:21:543044
5
-
原创 MySQL笔记之常用用法整理手册
文章目录(1)继上一篇博客《Oracle学习笔记整理手册》之后,我再写一篇Mysql版本的PS:本博客收录自己工作中遇到学到的一些Oracle技能,有时间就更新整理一下(1)...2019-02-16 23:02:141401
0
-
原创 oracle和mysql批量Merge对比
orm框架采用mybatis,本博客介绍一下批量合并merge用oracle和mysql来做的区别,oracle merge合并更新函数的详细介绍可以参考我以前的博客:https://blog.csdn.net/u014427391/article/details/87898729oracle方法:<!-- 批量更新新增关联信息 oracle--> <insert id=...2019-04-16 12:30:471003
0
-
原创 Oracle和Mysql获取uuid的方法对比
场景:orm框架用mybatis,需要往数据库新增一条数据,用Oracle和mysql数据库分别需要怎么实现?mysql方法,用mysql提供的uuid函数<insert id="add" parameterType="com.t.model.ActionModel" databaseId="mysql"> insert into t_config ...2019-04-13 23:22:02989
0
-
原创 MySQL应用之锁表查询SQL
// 查看进程SHOW PROCESSLIST;// 查看是否锁表SHOW OPEN TABLES WHERE In_use > 0;// 查看正在锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; // 查看等待锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; ...2019-08-31 10:59:541744
0
-
原创 MySQL基础之日期和时间类型笔记
最近在看《MySQL技术内幕:SQL编程》并做了笔记,这是一篇笔记类型博客,分享出来方便自己复习,也可以帮助其他人一、日期时间类型所占空间对比各种日期时间数据类型所占的空间:类型所占空间DATETIME8字节DATE3字节TIMESTAMP4字节YEAR1字节TIME3字节二、DATETIME和DATE对比DATETIME占用8...2019-12-04 11:58:432152
0
-
原创 Mysql应用之绿色版服务端部署教程
今天在公司想跑一个项目,需要装mysql,所以随意去官网找了一下并没有找到exe版本的安装软件,只有需要自己部署配置的版本,本来想继续找,不过觉得花时间,就没继续找了。之前没用过绿色版本的mysql服务端,以为很快可以装好,没想到还是花了一点时间,主要是部署配置过程问题一个接一个,不过觉得还是挺有意思的,所以做一下记录,下次遇到就可以很快解决。一、MYSQL配置部署下载解压下载mysql服...2019-11-01 09:55:302567
3
-
原创 MySQL细节之派生查询别名问题
最近在做mysql sql兼容,原来是oracle的sql都要保证在mysql数据库运行业务场景:原来是一个带有子查询的sql,在oracle是可以正常运行的,迁到mysql就发现报错了,报错信息如:Every derived table must have its own alias这个报错的意思是,派生出来的查询结果必须有一个别名,比如SQL:select * from (sele...2019-09-05 23:55:451163
0