Mysql
文章平均质量分 77
详细介绍MySQL的前世今生,sql 执行流程,索引,优化等等
珍妮玛•黛金
人生就是如此,穿的是朝九晚五的责任,提的是柴米油盐的生活,跳的骨子里的放荡不羁和曾经为此付之希望的梦想叫醒我的不是梦想,是生活,看世人慌慌张张,不过图碎银几两。偏偏这碎银几两,能解世间万种惆怅。
展开
-
mysql5.7windows安装修改密码
mysql5.7版本在安装过程中有很多坑,这里通过记录的方式分享给大家原创 2024-06-19 15:16:29 · 603 阅读 · 0 评论 -
MySQL学习笔记(十五)行锁表锁间隙锁临键锁共享锁排他锁死锁
行锁表锁间隙锁临键锁共享锁排他锁死锁原创 2022-12-30 09:35:16 · 782 阅读 · 0 评论 -
手写一个简单的mybatis
今天写个简单版V1.0版本的mybatis,可以其实就是在jdbc的基础上一步步去优化的,网上各种帖子都是照着源码写,各种抄袭,没有自己的一点想法,写代码前要先思考,如果是你,你该怎么写?怎么去实现,为什么要这样写?而不是照着源码依葫芦画瓢。原创 2022-12-08 12:03:46 · 1039 阅读 · 1 评论 -
MySQL学习笔记(十四)索引失效有哪些情况?
索引是提高数据库查询性能的一个重要方法。使用索引用可快速找出某个列中包含特定值的行。不使用索引,必须从第一条记录开始读,可能要读完整个表,才能找出相关的行。使用索引就像查字典一样,我们可以根据拼音、笔画、偏旁部首等排序的目录(索引),快速查找到需要的字。原创 2022-12-06 15:12:47 · 1268 阅读 · 0 评论 -
MySQL学习笔记(十三)count(*),count(id),count(1),count(字段)区别
count是MySQL的统计函数原创 2022-12-05 16:19:42 · 2184 阅读 · 0 评论 -
MySQL学习笔记(十二)锁
innoDB锁的分类和原理原创 2022-12-05 10:07:57 · 652 阅读 · 0 评论 -
MySQL学习笔记(十一)事物
先说下事物4种特性 - 原子性:事物在执行过程中,要么全部执行成功,要么全部失败 - 一致性:事物在执行过程中,保障数据的完整性,一致性, - 隔离性:同一时间,只能有一个事物进行 - 持久性:事物执行完后后,数据会保存在数据库中,无法回滚原创 2022-12-02 17:29:59 · 105 阅读 · 0 评论 -
MySQL学习笔记(十)crash-safe 和两段提交
CrashSafe指MySQL服务器宕机重启后,能够保证:- 所有已经提交的事务的数据仍然存在。- 所有没有提交的事务的数据自动回滚。原创 2022-12-02 15:34:51 · 729 阅读 · 0 评论 -
MySQL学习笔记(九)MVCC
MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。原创 2022-12-02 14:56:47 · 595 阅读 · 0 评论 -
MySQL学习笔记(八)redolog、undolog、binlog
Mysql三个核心日志分别是 binlog(二进制日志) 、redo log(重做日志)、undo log(回滚日志), 这里面binlog 是server层的日志,而redo log 和undo log都是引擎层(innodb)的日志,其他数据引擎就没有redo log和undo log,例如myisam引擎就没有这2个日志,因为它不支持事物。原创 2022-12-02 14:33:03 · 626 阅读 · 0 评论 -
MySQL学习笔记(七)性能优化
1.硬件环境优化许多不同的硬件都可能会影响都MySQL的性能,例如操作系统,磁盘大小,可用内存,CPU,网络以及各种计算机组件,最常见的瓶颈就是CPU/IO资源。当数据可以放在内存中或者可以从磁盘中以足够快的速度读取时,CPU可能出现瓶颈;另外,IO瓶颈,一般发生在工作所需的数据远远超过有效内存容量的时候。选择更快,多核CPU平衡内存和磁盘资源使用SSD固态磁盘RAID磁盘阵列优化网络资源操作系统2.缓存默认情况先MySQL的查询缓存是开启的,MySql8.0之后默认关闭了缓存的功原创 2021-07-21 18:47:01 · 245 阅读 · 0 评论 -
MySQL学习笔记(六)索引类别
1.普通索引MySQL中最基本的索引类型,没有限制,允许重复,允许NULLCREATE INDEX index_code ON tb_student(code);2.唯一索引唯一索引跟普通索引类似,唯一索引列的值必须唯一,允许有空值。如果是组合索引,则列值的组合必须唯一。创建唯一索引通常使用 UNIQUE 关键字,例如电话号码必须唯一,创建唯一索引CREATE INDEX index_phone_number ON tb_student(phone_number);3.主键索引主键索引原创 2021-07-21 14:19:47 · 381 阅读 · 0 评论 -
MySQL学习笔记(五)索引数据结构
索引就是排好序的数据结构,可以帮助我们快速的查找到数据,那么底层的数据到底是如何存储的呢?为什么InnoDB 用的是B+tree 存储结构?大家可以看看这个可视化的网站数据结构和算法的可视化工具可以看到数据结构里面有链表,二叉树,AVL,红黑树,Hash,B tree ,B+tree等等,可以点击进入每个数据结构的可视化页面,玩一玩,看看插入时数据是怎么样排序的1.二叉查找树(Binary Search Trees)二叉树的特点是左边节点比右边节点小,每个叶子节点下的子节点最多只能有2个,每次原创 2021-07-20 15:29:35 · 150 阅读 · 0 评论 -
MySQL学习笔记(四)存储引擎
存储引擎查看SHOW ENGINES可以看到MySQL里面有很多存储引擎,那么默认是InnoDB引擎,从MySQL 5.5版本之后,InnoDB就是默认引擎,之前是MyISAM引擎主要的3个常用的存储引擎是MyISAM, Memory , InnoDB1. MyISAM 引擎特点不支持事务锁粒度为表级锁读写互相阻塞,读的时候会阻塞写入,写入时会阻塞读只会缓存索引,不会缓存数据读取速度较快,占用资源相对较少不支持外键MyISAM引擎是MySQL5.5版本之前的默认引擎使用My原创 2021-07-19 22:50:00 · 276 阅读 · 0 评论 -
Mysql学习笔记,从入门到精通
最近准备面试,想着整理一下MySQL的相关知识,顺便复习一下,欢迎大家交流学习!mysql 的前世今生1996年,MySQL 1.0发布2000年,ISAM升级为MyISAM,MySQL开源2003年,MySQL 4.0发布,集成InnoDB存储引擎2005年,MySQL 5.0发布,集成视图,存储过程2010年,MySQL 5.5发布,默认InnoDB存储引擎2016年,MySQL 8.0发布MySQL学习笔记(一)select的执行流程MySQL学习笔记(二)update的执行流程原创 2021-07-19 17:07:22 · 173 阅读 · 0 评论 -
MySQL学习笔记(三)sql的执行顺序
下面这个sql语句基本包括所有查询中的关键字,我们来看看他们的执行顺序SELECT DISTINCT (u.id)FROM eom_user uLEFT JOIN eom_company c ON u.company_id = c.idWHERE u.id = 1GROUP BY u.idHAVING u.id > 0ORDER BY u.idLIMIT 10sql 的执行顺序并不是按照书写顺序来执行的第一步先执行from table然后执行连表查询join o原创 2021-07-19 17:02:30 · 237 阅读 · 0 评论 -
MySQL学习笔记(二)update的执行流程
update sql 执行流程我们先来了解一下MySQL的innodb系统日志redo log(重做日志),用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来,保证事物的持久性。当数据库掉电或者宕机,InnoDB存储引擎会使用redo log恢复到之前的时刻,以此来保证数据的完整性。undo log(回滚日志),提供回滚操作,为了满足事务的原子性,在操作任何数据之前,首先将数据备份到一个地方。事务中的所有操作,要么全部完成,要么不做任何操作。如果在执行的过程中发了错误,需原创 2021-07-19 16:06:48 · 580 阅读 · 0 评论 -
MySQL学习笔记(一)select的执行流程
select * from table 到底经历了什么?sql 查询语句在平时工作中用到非常多,那么他的执行流程到底是什么呢?先来看看这个流程图1.连接器客户端发起请求,首先需要和数据库建立连接,例如需要输入连接的ip地址,端口,用户名密码等信息;建立连接,获取权限,维持和管理连接;MySQL 5.7后,每次执行一条查询后,可以用mysql_reset_connection来重新初始化连接资源,也就是长连接,这样就不需要重连和重新做权限验证了,可以减少资源开销。2.缓存建立连接之后,在MySq原创 2021-07-19 14:05:11 · 565 阅读 · 0 评论