mysql
文章平均质量分 78
数据库 mysql
yours_棒棒糖
间歇性踌躇满志,持续性混吃等死!!!难搞喔!!
生活不易,继续前行,为了成为最好的自己!
刷题记录,博客:https://github.com/can19960229/Candy_leetcode
展开
-
【数据库】MySQL三大日志:binlog、redo log和undo log
MySQL三大日志——binlog、redo log和undo log日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志(binlog)和事务日志(包括redo log和undo log),本文接下来会详细介绍这三种日志。binlogbinlog用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。binlog是mysql的逻辑日志,并原创 2022-04-18 15:02:37 · 481 阅读 · 0 评论 -
【数据库】MySQL Innodb在RR(可重复读)级别如何避免幻读
什么是幻读事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。 同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象 发生了幻觉一样。mysql如何实现避免幻读在快照读读情况下,mysql通过mvcc来避免幻读。在当前读读情况下,mysql通过next-key来避免幻读什么是MVCCMVCC 全称是multi version concurrent c转载 2021-05-24 21:58:08 · 295 阅读 · 0 评论 -
【数据库的三大特性】——数据库中事务,事务的隔离性,隔离级别,事务的实现
事务:事务的四大特性:ACID说到事务的ACID,原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。原子性指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做。要么全部提交,要么全部回滚。一致性事务中操作的数据及状态是一致的,即写入资料的结果必须完全符合预设的规则,不会因为出现系统意外等原因导致状态的不一致。隔离性一个事务所操作的数据在提交之前,对其他事务的可见性设定(一般设定为不可见)M原创 2021-05-21 23:22:12 · 1044 阅读 · 0 评论 -
【重点】MySQL执行一条sql语句的流程
【重点】MySQL执行一条sql语句的流程mysql每执行一条DML语句,先将记录写入redo log buffer,后续某个时间点再一次性将多个操作记录写到redo log file。这种先写日志,再写磁盘的技术就是MySQL里经常说到的WAL(Write-Ahead Logging) 技术。redo log buffer写入redo log file实际上是先写入OS Buffer,然后再通过系统调用fsync()将其刷到redo log file中redo log实际上记录数据页的变更,而原创 2021-05-16 22:29:47 · 170 阅读 · 2 评论 -
一条sql语句执行很慢的原因有哪些?
一条sql语句执行很慢的原因有哪些?偶尔很慢数据库在刷新脏页(flush)当我们要往数据库插入一条数据、或者要更新一条数据的时候,我们知道数据库会在内存中把对应字段的数据更新了,但是更新之后,这些更新的字段并不会马上同步持久化到磁盘中去,而是把这些更新的记录写入到 redo log 日记中去,等到空闲的时候,在通过 redo log 里的日记把最新的数据同步到磁盘中去。刷脏页有下面4种场景(后两种不用太关注“性能”问题):redo log写满了:redo log 里的容量是有限的,如果数原创 2021-05-14 21:22:19 · 168 阅读 · 2 评论 -
【数据库】MySQL架构介绍——InnoDB引擎架构
什么是关系型数据库?什么是非关系型数据库?**关系型数据库:指采用了关系模型来组织数据的数据库。**关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。关系型数据库存在的问题网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈网站每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的在基于web的结构当中,数据库是最难进行横向扩展的,当一个应用系统的用户原创 2021-05-14 21:00:04 · 245 阅读 · 2 评论 -
【数据库的三大特性】——数据库中 索引优化 的基础知识(索引覆盖、索引失效)
MySQL索引概述性能下降,SQL慢,执行时间长,等待时间长有以下原因:1. 查询语句写的烂;2. 索引失效;3. 关联查询太多join(设计缺陷或不得已的需求);4. 服务器调优及各个参数设置(缓冲、线程数等)参考链接:一条sql语句执行很慢的原因有哪些?索引分两种:单值索引select * from user where name = ’ ';#建立单值索引create index idx_user_name on user(name)——建立了索引会在后台给你进行排序,操作会.原创 2021-05-13 21:58:31 · 230 阅读 · 0 评论 -
【数据库的三大特性】——数据库中 锁 的原理
MySQL锁原创 2021-05-13 21:53:57 · 118 阅读 · 0 评论 -
【数据库的基础知识】数据库的三范式
数据库的三范式为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。这种规则就是范式。1. 第一范式(确保每列保持原子性)1NF第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等原创 2021-05-13 21:52:28 · 472 阅读 · 0 评论 -
数据库索引——B+树索引(为什么使用B+树作为MySql的索引结构,用什么好处?)
数据库索引——B+树索引索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义索引在 MySQL 数据库中分三类:B+ 树索引Hash 索引全文索引B+树索引B+树进化具有的优点:索引节点没有数据,比较小,能够完全加载到内存中而且叶子节点之间都是链表的结构,所以B+Tree也是可以支持范围查询的,而B树每个节点key和data在一起,则无法区间查找B+树中因为数据都在叶子节点,每次查询原创 2021-05-12 22:13:40 · 1400 阅读 · 0 评论 -
【数据库】性能优化问题——分库分表
数据库性能问题原因大量请求阻塞在高并发场景下,大量请求都需要操作数据库,导致连接数不够了,请求处于阻塞状态。SQL操作变慢如果数据库中存在一张上亿数据量的表,一条 SQL 没有命中索引会全表扫描,这个查询耗时会非常久。存储出现问题业务量剧增,单库数据量越来越大,给存储造成巨大压力。优化方案硬件增加机器性能软件SQL调优SQL调优的目的:让慢SQL变快,让SQL执行尽量命中索引,不命中索引会全表查询,则性能变慢开启慢 SQL 记录如果你使用原创 2021-04-14 10:07:11 · 223 阅读 · 1 评论 -
【MySQL】触发器及其应用——如何将主键默认值设为UUID()
(1)触发器:什么是触发器?触发器的使用场景有哪些?触发器是用户定义在关系表上的一类由事件驱动的特殊的存储过程。触发器是指一段代码,当触发某个事件时,自动执行这些代码。使用场景可以通过数据库中的相关表实现级联更改。实时监控某张表中的某个字段的更改而需要做出相应的处理。例如可以生成某些业务的编号。注意不要滥用,否则会造成数据库及应用程序的维护困难。大家需要牢记以上基础知识点,重点是理解数据类型CHAR和VARCHAR的差异,表存储- 引擎InnoDB和MyISAM的区别。MySQL中都有原创 2020-12-16 16:23:37 · 1217 阅读 · 3 评论 -
DOS命令窗口操作MySQL数据库中的数据乱码问题的解决
问题:当我们使用DOS命令行进行SQL语句操作如有有中文会出现乱码乱码产生的原因:查看 MySQL 内部设置的编码:查看包含character开头的全局变量show variables like ‘character%’;执行效果:解决方案:方法一:修改client、connection、results的编码为GBK,保证和DOS命令行编码保持一致(1)单独设置说明set character_set_client=gbk;修改客户端的字符集为GBKs原创 2020-08-02 22:22:04 · 583 阅读 · 0 评论 -
MySQL数据库——JDBC、JDBC连接池&JDBCTemplate
JDBC目录JDBC目录JDBC:1. 概念:2. 快速入门:3. 详解各个对象:1. DriverManager:驱动管理对象2. Connection:数据库连接对象3. Statement:执行sql的对象4. ResultSet:结果集对象,封装查询结果5. PreparedStatement:执行sql的对象抽取JDBC工具类 : JDBCUtilsJDBC控制事务:JDBC目录1. JDBC基本概念2. 快速入门3. 对JDBC中各个接口和类详解JDBC:1. 概念:Java D原创 2020-08-01 20:43:31 · 470 阅读 · 0 评论 -
MySQL数据库——CRUD、约束、多表和事务
MySQLMySQL基础数据库的基本概念MySQL数据库软件SQLDDL:操作数据库、表DML:增删改表中数据DQL:查询表中的记录MySQL约束DQL:查询语句约束数据库的设计—多表关系和范式数据库的备份和还原MySQL多表&事务多表查询:* 多表查询练习事务DCL:MySQL基础数据库的基本概念MySQL数据库软件安装卸载配置SQL数据库的基本概念1. 数据库的英文单词: DataBase 简称 : DB2. 什么数据库? * 用于存储和管理数据的仓库。原创 2020-07-14 15:00:27 · 740 阅读 · 0 评论