1. 什么是事务?
应用在运行时可能会发生数据库、硬件的故障,应用与数据库的网络连接断开或多个客户端端并发修改数据导致预期之外的数据覆盖问题,为了提高应用的可靠性和数据的一致性,事务应运而生。
从概念上讲,事务是应用程序将多个读写操作组合成一个逻辑单元的一种形式,这样其中所有的读写操作都被视为单个
测试环境
MySQL版本: 5.7.27-30-log Percona Server (GPL), wsrep_31.39
涉及表结构:
CREATE TABLE `scout_job` (
`task_id` varchar(22) NOT NULL DEFAULT '' COMMENT '
本文参考了这篇文章 https://blog.csdn.net/tenc1239/article/details/130451736 感谢大佬的分享
前提:自己准备好两个数据库环境,我用的是本机的vm虚拟机linux中的mysql(版本8.0.33)和本机windows中的mysql(8.1.0
1.概述
MySQL是一个关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (关系数据库管理系统) 应用软件之一。
使用MySQL来存储并操作数据,则需要满足以下要求:
安装MySQL服务端
安装MySQL客户端
【客户端】连接【服务端】
【客户端】发送命令给【服务端】,服
1. 问题9
1.1. 只讲授一门课程的教授
1.2. sql
select p.*
from professor p,
teach t
where p.lname = t.lname
and p.lname not in (
select t1.lname
fro
第3句 今日流失用户
需求:
当日流失用户的定义:昨天登录的,今天没登录的用户数
有一张用户登录日志表,有字段 date_stamp(日期时间戳),用户id(uid)。如果用户在某天登录了,该表会有一条记录。
#今天流失人数:昨天登录,今天没登录的
select a.date_stamp+8640
前言
说到MySQL的MTS,相信很多同学都不陌生,从5.6开始基于schema的并行回放,到5.7的LOGICAL_CLOCK支持基于事务的并行回放,这些内容都有文章讲解,在本篇文章不再赘述。今天要讲的是,你知道如何查看并行回放是否存在性能瓶颈吗,是由于主库事务行为导致无法并行回放,还是由于wo
1. 为什么需要复制
我们可以考虑如下问题:
当数据量、读取或写入负载已经超过了当前服务器的处理能力,如何实现负载均衡?
希望在单台服务器出现故障时仍能继续工作,这该如何实现?
当服务的用户遍布全球,并希望他们访问服务时不会有较大的延迟,怎么才能统一用户的交互体验?
这些问题其实都能通
MySQL8_SQL语法
SQL 全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 。
一、SQL通用语法
在学习具体的SQL语句之前,先来了解一下SQL语言的同于语法。
1). SQL语句可以单行或多行书
分享技术,用心生活
背景:系统中有一个统计页面加载特别慢,前端设置的40s超时时间都加载不出来数据,因为是个统计页面,基本上一猜就知道是mysql的语句有问题,遗留了很久没有解决,正好趁不忙的时候,下定决心一定把它给搞定!
1. 分析原因
(mysql5.7)
执行一下问题sql,可以看到单表
一、插入数据优化
1.1 批量插入
如果有多条数据需要同时插入,不要每次插入一条,然后分多次插入,因为每执行一次插入的操作,都要进行数据库的连接,多个操作就会连接多次,而一次批量操作只需要连接1次
1.2 手动提交事务
因为Mysql默认每执行一次操作,就会提交一次事务,这
开心一刻
今天女朋友很生气
女朋友:我发现你们男的,都挺单纯的
我:这话怎么说
女朋友:脑袋里就只想三件事,搞钱,跟谁喝点,还有这娘们真好看
我:你错了,其实我们男人吧,每天只合计一件事
女朋友:啥事呀?
我:这娘们真好看,得搞钱跟她喝点
问题复现
需求背景
年初和朋友一起做了个项目,到现在还没收到钱呢,今天中午时候突然听说之前的数据库被攻击了,业务数据库全部被删除。看有没有什么办法恢复,要是恢复不了,肯定也别想拿钱了吧?
README FOR RECOVERY DATA
All your databases was backed up. You ne
一、视图介绍
视图(View):是一种虚拟存在的表,视图中的数据并不在数据库中实际存在,行和列数据来自,定义视图时查询使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询的结果。
二、创建视图
2.1 语法
create [or replace]
1 json对象的介绍
在mysql未支持json数据类型时,我们通常使用varchar、blob或text的数据类型存储json字符串,对mysql来说,用户插入的数据只是序列化后的一个普通的字符串,不会对JSON文档本身的语法合法性做检查,文档的合法性需要用户自己保证。在使用时需要先将整个js
一、索引概述
1.1 索引的介绍
索引index:是帮助 Mysql 高效获取数据 的 有序的数据结构,在数据之外,数据库系统维护着的满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引
1.2 索引的
一、最左前缀法则
如果索引了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列,如果跳跃某一列,索引将部分失效(后面的字段索引失效)
示例1:account_transaction表中创建一个联合索引,使用method字段+trader_s
什么是存储过程
存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。简单理解,存储过程其实就是一堆SQL语句的合并。中间加入了一些逻辑控制。
存储过程的创建方式
存储过程的创建方式:
创建无参存储过程
创建有参存储过程
1.创建无参存储过程
1. 识别非小计行
1.1. 结果集
1.2. DB2
1.3. Oracle
1.4. 超级聚合(supera ggregate)值
1.4.1. sql
select deptno, job, sum(sal) sal,
grouping(deptno) deptno_sub
一、SQL执行频率
MySQL客户端 连接成功后,通过show [session | global] status 命令可以提供服务器状态信息,通过如下指令,可以查看当前数据库的insert,update,dalete,select的访问冰刺
show [global | session]