Mysql入门笔记
文章平均质量分 78
本专栏为Mysql入门笔记,Mysql进阶知识请关注Mysql超神之路专栏
Binary Oracle
一名热爱开源和技术的Coder , 开源框架spring committer , golang开源网络库netpoll committer; (脱产备战25考研中,停更一年)
展开
-
Mysql 中令人稀里糊涂的Explain
Mysql 中令人稀里糊涂的Explain原创 2023-09-15 14:43:08 · 227 阅读 · 0 评论 -
Mysql分布式事务
为了规范分布式事务的管理,X/OPEN 提出了分布式事务处理规范XA协议,XA规范了TM与RM之间的通信接口,在TM与多个RM之间形成一个双向通信桥梁,从而在多个数据库资源下保证ACID四个特性。目前知名的数据库,如Oracle, DB2,mysql等,都是实现了XA接口的,都可以作为RM。XA是数据库的分布式事务,强一致性,在整个过程中,数据都处于被锁住的状态,即从prepare到commit、rollback的整个过程中,TM一直拥有参与分布式事务RM对应的数据库的锁,如果有其他人要修改数据库的该条数据原创 2022-06-15 16:37:04 · 2700 阅读 · 0 评论 -
MySQL还能这样玩---第五篇之视图应该这样玩
MySQL还能这样玩---第五篇之视图应该这样玩什么是视图临时表原理视图原理视图的CRUD创建视图使用视图修改视图更新视图注意事项删除视图查看视图视图对性能的影响什么是视图视图相对于普通表而言,有下面这些优势: 简单 : 使用视图的用户完全不需要关系后面对于的表的结构,关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集 安全 : 使用视图的用户只能访问他们可以查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图可以简单实现 数据独立: 一旦视图的结果确定了,可以屏蔽表原创 2022-03-12 13:51:01 · 349 阅读 · 0 评论 -
MySQL还能这样玩---第四篇之分区原理
分区原理InnoDB逻辑存储结构分区原理图分区使用场景分区限制分区表的原理如何使用分区表分区陷阱NULL值陷阱其他陷阱查询优化本节为分区高级篇,主要针对分区底层原理进行介绍,建议不了解分区概念的先看下面的分区入门篇:MySQL还能这样玩—第二篇之不为人知的分区本节内容主要参考: innodb技术内幕,高性能mysql,深入浅出mysql,和其他一些官方和网上资料InnoDB逻辑存储结构个人认为如果想要理解分区的原理,还是需要先大体理解一下InnoDB存储引擎的结构,才能更好的理解我下面要讲的分原创 2022-03-11 21:42:48 · 1346 阅读 · 0 评论 -
MySQL还能这样玩---第三篇之索引也可以如此easy
MySQL还能这样玩---第三篇之索引也可以如此easy索引基本概念索引是什么索引优势和劣势索引类型主键索引普通索引唯一索引全文索引空间索引前缀索引其他(按照索引列数量分类)单列索引组合索引索引的数据结构Hash表二叉查找树平衡二叉树B树:改造二叉树B+树:改造B树Mysql的索引实现MyIsam索引主键索引辅助索引InnoDB索引主键索引(聚簇索引)辅助索引组合索引最左前缀匹配原则覆盖索引避免回表参考资料索引基本概念索引是什么官方定义:MySQL官方对索引的定义为:索引(index)是帮助My原创 2022-03-08 22:37:46 · 190 阅读 · 0 评论 -
MySQL还能这样玩---第二篇之不为人知的分区
MySQL还能这样玩---第二篇之不为人知的分区分区是啥子嘛?分区有啥好处,能用来干啥?分区类型RANGE分区values less than 子句还支持使用表达式?NULL值算啥?range columns 可以支持非整数分区range分区小结LIST分区COLUMNS分区分区是啥子嘛?分区是指根据一定的规则,数据库把一个表分解成更多更小的,更容易管理的部分。就访问数据库的应用程序而言,逻辑上只有一个表或者一个索引,但是实际上这个表可能由数十个物理分区对象组成,每个分区都是一个独立的对象,可以独自原创 2022-03-05 17:48:41 · 1041 阅读 · 1 评论 -
MySQL还能这样玩---第一篇之你所不知道的命令
MySQL还能这样玩命令篇DDL---表定义相关命令操作show create table 表名 ---查看创建表的SQL语句alter table 表名 modify 列名 列定义---修改列的类型alter table 表名 add 列名 列类型 ---增加新列alter table 表名 drop 列名---删除某列字段later table 表名 change 旧列名 新列名 列的类型 ---修改表的列名,列定义修改字段排列顺序 --- first / after更改表名---alter tab原创 2022-03-03 18:57:28 · 568 阅读 · 0 评论 -
高性能MySQL卷一之架构分析
高性能MySQL卷一之架构分析Mysql架构优化与执行并发控制读写锁锁粒度表锁行级锁事务隔离级别死锁事务日志MYSQL中的事务自动提交在事务中混合使用存储引擎隐式和显示锁定多版本并发控制Mysql架构 最上层负责处理连接处理,授权认证和安全等 第二层负责查询解析,分析,优化,缓存以及所有的内置函数,所有跨存储引擎的功能都在这层实现: 存储过程,触发器,视图。 第三层包含了存储引擎,负责MySQL中数据的存储和提取,服务器规定了一组通用的API接口,不同的存储引擎底层实现可以不同,但是都要实现相原创 2022-02-25 11:25:10 · 264 阅读 · 0 评论 -
Mysql之bug
Mysql之bugMySQL中where 1=1真的会影响性能么?彻底解决mysql中文乱码MySQL中where 1=1真的会影响性能么?MySQL中where 1=1真的会影响性能么?彻底解决mysql中文乱码彻底解决mysql中文乱码原创 2022-01-20 21:58:29 · 674 阅读 · 0 评论 -
Mysql知识盲区整理
Mysql知识盲区整理MySQL数据库备份的几种方式MySQL数据库备份的几种方式MySQL数据库备份的几种方式原创 2021-12-11 16:46:09 · 560 阅读 · 0 评论 -
MySQL的主从复制
MySQL的主从复制Why we need 主从复制 ?复制功能复制方式复制原理复制流程图复制过程复制中线程的作用从节点主节点从节点需要建立二进制日志文件吗?Mysql复制特点主从复制配置过程主节点从节点配置演示主机修改my.ini配置文件(Windows)从机修改my.cnf配置文件(Linux)因为修改过配置文件,主机和从机都需要重启mysql服务主机和从机都关闭防火墙在windows主机上建立账户,并授权给slave在LInux从机上配置需要复制的主机停止从服务器复制功能注意Why we need原创 2021-10-06 09:55:39 · 126 阅读 · 0 评论 -
MySQL数据库锁
MySQL数据库锁锁的分类按照对数据操作的类型(读/写)进行分类对数据操作的粒度分类表锁锁表---读表查看表上加过的锁释放所有表锁注意锁表---写表总结如何分析表锁定行锁行锁演示锁的分类按照对数据操作的类型(读/写)进行分类 读锁(共享锁): 针对同一份数据,多个读操作可以同时进行而不会相互影响 写锁(排它锁): 当前写操作没有完成前,它会阻断其他写锁和读锁对数据操作的粒度分类 表锁—偏读 行锁—偏写表锁偏向MyISAM存储引擎,开销小,加锁快,无死锁,锁定粒度大,发生锁冲突的原创 2021-10-05 22:34:57 · 612 阅读 · 0 评论 -
MySQL: 使用show profiles分析SQL性能
使用show profiles分析SQL性能介绍如何查看执行SQL的耗时的步骤:开启profile、发送sql、查看profile的资源开销结果、关闭profile。profile默认是不打开的验证修改后的结果开启profile,然后测试获取profile的帮助获取SQL语句的开销信息需要注意的四点全局查询日志开启全局查询日志介绍分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数可以在全局和session级别来设置。对于全局原创 2021-10-03 21:39:57 · 353 阅读 · 0 评论 -
Mysql--批量插入数据脚本
批量插入数据脚本前置知识创建一个随机产生字符串的函数rand_string(int);创建一个随机产生一个数字的函数rand_num()创建存储过程调用存储过程前置知识 CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数 FLOOR 和 CEILING 返回值的数据类型都与输入的数字表达式的数据类型相同。 select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558, substring原创 2021-10-03 21:10:03 · 1251 阅读 · 0 评论 -
Mysql慢日志查询
Mysql慢日志查询简介查看是否开启及如何开启设置永久开启修改和查看默认的最长查询时间参数select sleep(4):当前查询执行四秒查询当前系统中有多少条慢查询记录日志分析工具mysqldumpslow简介MySQL慢查询日志是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中long_query_time的默认值为10,意思是运行10秒以上的语句默认情况下,MYSQL数据库没有原创 2021-10-03 20:43:47 · 1457 阅读 · 0 评论 -
MySQL索引重点小总结
MySQL索引重点小总结索引注意事项覆盖索引MySQL的索引是怎么加速查询的?mysql中, ,order by ,group by对联合索引的使用情况区间查询是否会走索引?order by子句是否会走索引?联合索引对范围查询的支持where对索引的支持Mysql优化_ORDER BY和GROUP BY (单路排序和双路排序)为排序使用索引---order by 和 group by小表驱动大表索引注意事项全值匹配我最爱最左前缀,中间不能断不在索引列上做任何操作(计算,函数,类型转换),否则会导原创 2021-10-02 14:37:27 · 306 阅读 · 0 评论 -
mysql--索引知识点整理
索引知识点整理一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-09-29 19:53:58 · 247 阅读 · 0 评论 -
MySQL索引的数据结构
MySQL索引的数据结构概述本质优点缺点MySQL中的索引Btree示例B+ Tree索引带有顺序访问指针的B+ Tree概述本质优点缺点MySQL中的索引Btree示例B+ Tree索引带有顺序访问指针的B+ Tree...原创 2021-09-26 16:25:57 · 99 阅读 · 0 评论 -
MySql高级----Linux下的mysql的安装与初始化配置
MySql高级部分一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-09-21 16:32:34 · 5056 阅读 · 1 评论 -
mysql---用户和权限管理复习
用户和权限管理复习用户管理1.格式注意权限管理查看用户权限1、查看所有用户(用户名、给谁授权)2、查看单个用户所有情况权限表Grant命令来创建用户并设置权限授权每次更新权限后记得刷新权限--**`FLUSH PRIVILEGES;`**格式GRANT命令说明1、全局授权(直接把 root 限制主机改为 %,任意主机)2、单个数据库授权3、单个数据库单个表授权4、单个数据库单个表授权某些字段授权四、收回权限、删除用户1、收回权限2、删除用户补充远程登录mysql修改用户密码修改用户名修改连接方式查看用户权限原创 2021-09-20 17:08:21 · 705 阅读 · 0 评论 -
mysql--触发器复习
触发器复习触发器作用触发器创建语法四要素对于一张表来说,触发器就有6种操作(监视事件*触发时间)注意事项触发器的创建和使用1.格式2.示例1.查看全部触发器2.查看触发器的创建语句3.删除触发器触发器应用错误情况同时,如果在触发器中出现错误,那么前面的已经执行的操作也会全部清空注意事项① mysql触发器不能对同一张表进行修改操作因此说明:MySQL 的触发器中不能对本表进行 insert、update 和 delete 操作,否则会报错总结优点缺点参考文章触发器触发器是一种特殊类型的存储过程,它不同原创 2021-09-20 14:45:55 · 561 阅读 · 0 评论 -
MySQL---存储过程复习
存储过程存储过程特点基本语法格式关于存储过程的参数1.输入参数2.输出参数3.输入参数输出参数可以一起使用4.INOUT输入输出参数,具有in和out的双重功能示例1.使用in参数2.创建带输入和输出参数的存储过程注意3.使用INOUT参数,具有in和out的双重功能4.存储过程使用局部变量5.使用 [ select 字段 into变量 ] 把查询的结果赋值给变量存储过程中的流程控制IF语句循环遍历查看存储过程列表查看某个存储过程的结构和信息存储过程的删除存储过程 存储过程,带有逻辑的sql语句原创 2021-09-20 13:59:14 · 329 阅读 · 0 评论 -
Mysql安装多台mysql
高级篇下载Mysql最新版8.0.26在当前mysql安装目录下面新建一个my.ini配置文件,进行初始化配置初始化数据库,并注册MySql服务三级目录下载Mysql最新版8.0.26在当前mysql安装目录下面新建一个my.ini配置文件,进行初始化配置[mysqld]# 设置3306端口--如果之前安装过了mysql,那么这里可能会出现端口冲突问题port=3307#设置mysql的安装目录basedir=D:\Mysql_8.0.26\mysql-8.0.26-winx64# 设置原创 2021-09-17 09:56:25 · 321 阅读 · 0 评论 -
MySql---外键复习
外键复习MySQL外键约束(FOREIGN KEY)主表和从表选取设置 MySQL 外键约束的字段在创建表时设置外键约束部门和员工案例演示如果添加不符合外键约束的数据,会报错小总结注意事项级联操作格式测试级联操作MySQL外键约束(FOREIGN KEY) MySQL 外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。 外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键的值必须等于另一个表中主键的某个值。 外原创 2021-09-13 08:31:23 · 407 阅读 · 0 评论 -
MySQL数据篇之多表操作-----保姆级教程
多表操作一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-08-27 10:00:43 · 985 阅读 · 57 评论 -
SQL1 查找最晚入职员工的所有信息
题解汇总:/*select * from employees order by hire_date desc limit 1;*/ /* 使用limit 与 offset关键字 *//*select * from employees order by hire_date desc limit 1 offset 0;*/ /* 使用limit关键字 从第0条记录 向后读取一个,也就是第一条记录 *//*select * from employees.原创 2021-07-08 20:52:23 · 219 阅读 · 1 评论 -
MySQL数据库完整知识点梳理----保姆级教程!!!
基础语法整理基础查询部分知识点语法查询表中的单个字段查询表中的多个字段查询表中的所有字段查询常量值查询表达式查询函数起别名去重+号的作用concat函数---拼接字符串ifnull函数--判断是否为空条件查询部分知识点整理语法根据筛选条件不同进行分类1.按条件表达式筛选2.按照逻辑表达式筛选3.模糊查询like的使用in的使用is null和is not null的使用安全等于 <=>基础查询部分知识点语法select 查询列表 from 表名 //显示查询到的结果,类似c++中的cout原创 2021-06-25 21:01:15 · 2862 阅读 · 318 评论 -
MYSQL数据库篇之查看当前数据库的版本编号
在mysql服务端里面查看MySQL数据库的编号select version();利用DOS命令查看MySQL数据库的编号mysql --version或者mysql -V原创 2021-06-24 18:25:15 · 318 阅读 · 0 评论 -
MySQL数据库篇之mysql的快速启动和停止
方法1—services服务方法2运行管理员命令窗口启动mysqlnet start mysql停止mysqlnet stop mysql原创 2021-06-24 18:11:41 · 213 阅读 · 0 评论 -
MySQL数据库篇之数据库的备份和还原
数据库的备份和还原数据库的备份第0步:先查看我们需要备份什么数据库,记下其名称第一步: 打开cmd命令行窗口第二步:输入备份数据库的命令语句数据库的还原第一种的还原方式第二种还原方式数据库的备份第0步:先查看我们需要备份什么数据库,记下其名称第一步: 打开cmd命令行窗口第二步:输入备份数据库的命令语句mysqldump -u root -p 需要备份的数据库名称 >备份的路径如果权限不够,需要打开管理员的命令行打开管理员的命令行成功标志:数据库的还原第一种的还原方式原创 2021-06-23 20:22:14 · 127 阅读 · 1 评论 -
MySQL数据库篇之重置MySQL的密码---保姆级教程
重置MySQL密码步骤第一步: 停止MySQL服务第二步: 在cmd下启动MySQL服务第三步:重新启动一个cmd命令行窗口,刚才那个窗口不要关掉,因为那个窗口就相当于是一个mysql的服务了第四步:修改root的密码第五步:结束mysql的进程第六步:重新启动mysql服务第一步: 停止MySQL服务第二步: 在cmd下启动MySQL服务跳过权限认证,来访问我们的mysql服务器mysqld --skip-grant-tables演示:cmd窗口输入完命令后,出现下面的窗口:原创 2021-06-23 16:28:23 · 704 阅读 · 20 评论 -
MySQL数据库篇---对数据库,数据库中表,数据库中表的记录进行添修删查操作---保姆级教程
MySQL数据库知识点整理MySQL数据库存储方式sql简介SQL分类DDL: 数据定义语言DCL: 数据控制语言DML:数据操控语言DQL: 数据查询语言SQL的使用SQL对数据库的操作创建数据库语法查看数据库修改数据库删除数据库MySQL数据库存储方式一台数据库服务器中会创建很多数据库(一个项目会创建一个数据库),在数据库中会创建很多张表(一个实体会创建一个表),在表中会有很多记录(一个对象实例回添加一条新的记录)sql简介SQL全称是“结构化查询语言是一种数据库查询和程序设计语言,用于原创 2021-06-23 15:41:48 · 2170 阅读 · 54 评论