03 事务隔离 事务:保证一组数据库操作,要么全部成功,要么全部失败。在 MySQL 中,事务支持是在引擎层实现的。 事务ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)。 建议你尽量不要使用长事务。**** 读未提交 ...
引言 在实际业务开发中,随着业务的变化,数据的复杂性和多样性不断增加。传统的关系型数据库模型在这种情况下会显得受限,因为它们需要预先定义严格的数据模式,并且通常只能存储具有相同结构的数据。而面对非结构化或半结构化数据的存储和处理需求,选择使用非关系型数据库或者创建子表存储这些变化的结构可能会变得复杂 ...
02 SQL更新语句执行流程 与查询流程不一样的是,更新流程还涉及两个重要的日志模块。 redo log(重做日志)和 binlog(归档日志) redo log 物理日志 binlog 逻辑日志 redo log WAL 的全称是 Write-Ahead Logging。 关键点就是先写日 ...
前言: 记录对林晓斌老师的《MySQL 实战 45 讲》课程学习路程。 01 MySQL的基本架构 MySQL的逻辑架构图 MySQL 分为 Server 层和存储引擎层两部分。 Server 层 功能:实现所有 跨存储引擎 的功能,比如存储过程、触发器、视图等。 连接器、查询缓存、分析器、优化器、 ...
docker安装mysql docker仓库搜索mysql docker search mysql docker仓库拉取mysql8.0 docker pull mysql:8.0 // 默认拉取最新版本 docker pull mysql 查看本地仓库镜像是否下载成功 docker images ...
注意本文是SQL执行顺序,不是MySQL Server内部执行流程。 MySQL并非像PostgreSQL(被认为是最接近 SQL 标准的数据库之一)一样严格按照SQL标准,MySQL执行引擎会根据查询的具体情况和优化策略来决定具体的执行顺序,所以SQL执行顺序是理论顺序。 书写顺序 select. ...
开心一刻 今天我突然顿悟了,然后跟我妈聊天 我:妈,我发现一个饿不死的办法 妈:什么办法 我:我先养个狗,再养个鸡 妈:然后了 我:我拉的狗吃,狗拉的鸡吃,鸡下的蛋我吃,如此反复,我们三都饿不死 妈:你整那么多中间商干啥,你就自己拉的自己吃得了,还省事 我又顿悟了,回到:也是啊 说句很重要的心里话: ...
1 月 31 日,InfoQ 极客传媒合作伙伴年度盛典在北京举办,围绕“有被 Q 到”主题精彩展开。GreatSQL受邀参会,与诸多IT行业伙伴相聚一堂,共筑开发者生态,共话技术前沿与商业创新。 会议期间,InfoQ 为全国技术行业做出突出贡献的企业和项目进行了颁奖。GreatSQL 开源数据库社区 ...
本文介绍了如何通过子查询优化深度分页查询,以减少回表操作带来的性能损耗。传统的深度分页查询往往会面临严重的性能问题,尤其在处理大量数据时更是如此。 ...
MySQL Shell 8.0.32 for GreatSQL编译二进制包 构建MySQL Shell 8.0.32 for GreatSQL 0. 写在前面 之前已经写过一篇前传 MySQL Shell 8.0.32 for GreatSQL编译安装,最近再次编译MySQL Shell二进制包时, ...
本文深度解析MySQL的COUNT(1), COUNT(*),COUNT(列)计数方式,强调COUNT(*)的广泛应用与InnoDB存储引擎的优化。通过性能比较,揭示COUNT(id)在索引下的性能,通过技术细节揭示MySQL查询优化器的工作原理,最终总结适用场景,为读者提供计数方式选择的指导。 ...
环境 MySQL 5.7 非GTID模式多线程复制。 现象 某MySQL数据库从节点因故障宕机(因故障直接宕机,非正常关闭),重启之后发现复制状态异常,show slave的结果中Slave_SQL_Running为No,错误代码为1062 error code,从系统表performance_sc ...
原生的Mybatis框架是没有ID自增器,但例如国产的Mybatis Plus却是支持,不过,Mybatis Plus却是缺少了自定属性的填充;例如:我们需要自定义填充一些属性,updateDate、createDate等,这时Mybatis Plus自带的ID自增器就无法满足需求;这种时候我们就需 ...
XPATH报错注入 extractalue(arg1,arg2) 接受两个参数,arg1:XML文档,arg2:XPATH语句 条件:mysql5.1及以上版本 标准payload 1' and extractvalue(1,concat(0x7e,(select user()),0x7e))# x ...
两要素 用户能够控制输入的内容 web应用把用户输入的内容,在没有经过过滤或者严格过滤的情况下带入到数据库中执行 分类 GET和POST 整数型,字符型,搜索型 万能密码 ’1 or 1 = 1# 1 or 1 = 1# 注释符: -- (后面有空格) --+ %23 注入流程: 判断是否有注入信息 ...
流程控制语句需要借助存储过程才有效。关于存储过程,我会在后续的文章详述,本篇文章只是阐述流程控制语句。因此,大家只需要注意存储过程中相应的流程控制语句即可。 如果文中阐述不全或不对的,多多交流。 ...
MySQL是一种流行的开源关系型数据库管理系统(RDBMS)。它是基于结构化查询语言(SQL)的,支持多种操作系统,包括Linux、Windows、macOS等,适用于客户端/服务器模式的数据存储和管理。MySQL特别适合于Web应用的开发,并且与Java、Python等编程语言有着良好的兼容性。在... ...
不知不觉 2023 年已经是过去式了,本文将从产品迭代、丰收收获、生态合作、社区活动 4 个方面带大家了解 GreatSQL 社区的 2023。 01 产品迭代 2023 年是发展的一年。在这一年里,GreatSQL 社区版发布了 3 个版本:8.0.25-17、8.0.32-24 以及 8.0.3 ...
环境介绍: 这里的MySQL Innodb Cluster搭建环境如下所示,总共有三台机器搭建MySQL InnoDB Cluster: 操作系统: Red Hat Enterprise Linux release 8.8 (Ootpa) 数据库版本:8.0.35 MySQL Community S ...
简介 在MySQL数据库中,死锁是指多个事务同时竞争同一资源,并且彼此互相等待对方释放资源而无法继续执行的情况,导致数据库操作无法完成,从而以最小的成本自动回滚事务的行为。 排查 方法1 show engine innodb status; 执行以上命令会得到大量日志,在LATEST DETECTE ...