【技术积累】Mysql中的SQL语言【技术篇】【四】【技术积累】Mysql中的SQL语言【技术篇】【四】
数据的连接与关联查询
INNER JOIN
INNER JOIN是MySQL中的一种表连接操作,用于将两个或多个表中的行基于一个共同的列进行匹配,并返回匹配的结果集。
下面是一个案例,假设有两个表:orders和customers,分别存储订单信息和客户信息。表结构如下:
orders表:
...[2023/7/21]
【技术积累】Mysql中的SQL语言【技术篇】【二】
数据操作
插入数据
Mysql使用INSERT语句来插入数据。INSERT语句的一般格式如下:
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
其中,表名是要插入数据的表名;列1, 列2, 列3 是要插入数据的列名;值1,...[2023/7/14]
【技术积累】Mysql中的SQL语言【技术篇】【三】
聚合函数
SUM函数
在MySQL中,SUM函数是用于计算数值列的总和的聚合函数。它接受一个数值列作为参数,并返回该列中所有值的总和。
以下是一个使用SUM函数的示例:
假设我们有一个名为"orders"的表,其中有两个字段:"product"和"amount",用于记录不同产品的订单金额。...[2023/7/14]
Mac pt-online-schema-change 图文并茂、不锁表在线修改 MySQL 表结构、添加表索引、添加表字段、修改表字段、删除表字段
导读
percona-toolkit 源自 Maatkit 和 Aspersa 工具,这两个工具是管理 MySQL 的最有名的工具,但 Maatkit 已经不维护了,全部归并到 percona-toolkit。Percona Toolkit 是一组高级的命令行工具,用来管理 MySQL 和系...[2023/7/3]
记一次字符串末尾空白丢失的排查 → MySQL 是会玩的!
开心一刻
今天答应准时回家和老婆一起吃晚饭,但临时有事加了会班,回家晚了点
回到家,本以为老婆会很生气,但老婆却立即从厨房端出了热着的饭菜
老婆:还没吃饭吧,去洗下,来吃饭吧
我洗好,坐下吃饭,内心感动十分;老婆坐旁边深情的看着我
老婆:你知道谁最爱你吗
我毫不...[2023/6/26]
搭建Mysql主从复制
MySQL主从复制是一种常用的数据库高可用性解决方案,可以提高数据库的可用性和性能。本教程将介绍如何搭建MySQL主从复制。
1、MySQL 支持的复制类型
基于语句的复制(STATEMENT):在主服务器上执行的 SQL 语句,在从服务器上执行同样的语句。MySQL 默认采用基于语句的复制...[2023/6/21]
MySql InnoDB 存储引擎表优化
一、InnoDB 表存储优化
1、OPTIMIZE TABLE
适时的使用 OPTIMIZE TABLE 语句来重组表,压缩浪费的表空间。这是在其它优化技术不可用的情况下最直接的方法。OPTIMIZE TABLE 语句通过拷贝表数据并重建表索引,使得索引数据更加紧凑,减少空间碎片。语句的执行效果...[2023/6/21]
花了一周时间,总算把mysql的加锁搞清楚了,再也不怕间隙锁和next-key了
接触mysql都知道在mysql中有很多锁,共享锁(S)、排他锁(X)、间隙锁(gap)、next-key,当然还有意向锁、表锁等。今天不讲别的,专门来看下innodb引擎下的锁是什么样子的。
现在有这样一条sql语句,你知道是什么锁吗?
update t set name=''1'' wh...[2023/6/19]
mysql可视化工具有哪些?优点是什么?
MySQL 是一种广泛使用的关系型数据库管理系统(RDBMS),由于其开放源代码和高度可定制化的优势,广受开发者欢迎。为了更加高效地管理 MySQL 数据库,我们通常需要使用 MySQL 可视化工具。下面列出了几款 MySQL 可视化工具及其优点:
Navicat for MySQL
N...[2023/6/14]
MySQL中都有哪些锁?
MySQL中都有哪些锁
为什么需要锁
在计算机系统中,锁(Lock)是一种同步机制,用于控制对共享资源的访问。它确保在任何给定时间内只有一个线程能够访问受保护的共享资源,从而避免了由并发访问导致的数据竞争和不一致问题。
同样,在数据库系统中,锁也扮演着重要角色,是其与文件系统不同的关键特性之...[2023/6/14]
【技术积累】Mysql中的SQL高级技巧【一】
什么是多表查询?如何在MySQL中进行多表查询?
多表查询就是在一个查询中涉及到多个表,通过特定的关联方式连接多个表,并根据条件从中查询出所需要的数据。
多表查询是关系型数据库中最为基础的应用之一。
一个比较典型的例子就是,我们在查询一个订单的详细信息时,需要从订单表中获取订单编号,然后根据...[2023/6/12]
EF Core + MySQL 基本增删改查
前言
基于EF Core + MySQL的基本增删改查,示例是基于.NET6 + EF Core + MySQL 创建实体和数据库、EFCore 数据迁移项目基础上的内容增加。同时也是对基于Canal实现MySQL 8.0 数据库数据同步项目的验证。
创建控制器
Controllers----...[2023/6/9]
MySQL中字符串查询效率大比拼
背景
最近有个同事对字符串加索引,加完后,发现多了个奇奇怪怪的数字 执行的SQL如下:
alter table string_index_test add index `idx_name` (`name`) USING BTREE;
这个奇怪数字就是191,它很是疑惑,也没...[2023/6/2]
MySQL uuid及其相关的一些简单性能测试MySQL uuid及其相关的一些简单性能测试
运维同事导入一批大约500万左右的数据,耗时较久。他使用的是纯SQL导入,主键使用的是UUID,因为业务原因没有使用自增ID。
因为是内网,不能远程访问。
通过沟通,大致觉得有两个原因,一是因为UUID作为主键,二是表字段繁多,单行加起来接近10000的长度引起行溢出。
因为是临时一次性任...[2023/6/2]
Mysql DDL执行方式-pt-osc介绍 | 京东云技术团队
1 引言
大家好,接着上次和大家一起学习了《MySQL DDL执行方式-Online DDL介绍》,那么今天接着和大家一起学习另一种MySQL DDL执行方式之pt-soc。
在MySQL使用过程中,根据业务的需求对表结构进行变更是个普遍的运维操作,这些称为DDL操作。常见的DDL操作有在表上...[2023/5/30]
es mysql 适用场景对比es mysql 适用场景对比
es mysql 适用场景对比
问题一
全文检索毫无疑问直接上es,那么除了这种场景,什么时候该选es?为啥mysql不行?
对枚举字段的搜索
mysql创建索引的原则是对于那些区别度高字段建立索引,区别度越高的索引,在数据量大的情况下,索引效果越好。
因为mysql建立b+树时是这样,每创建...[2023/5/30]
MySQL全面瓦解30:备份与恢复 - Hello-Brand
合辑地址:MySQL全面瓦解
1 为什么需要数据库备份
灾难恢复:当发生数据灾难的时候,需要对损坏的数据进行恢复和还原
需求的变更或者回滚:当需求发生变更,或者需要回滚到之前的版本时,数据库备份也显得很重要。
审计:需要知道某一个阶段的数据或者Schema的实际情况
测试:将实际的生产环境...[2023/5/29]
更换Mysql数据库-----基于Abo.io 的书籍管理Web应用程序
之前公司一直使用的是ASP.NET Boilerplate (ABP),但是当解决方案变得很大时,项目启动就变得非常慢,虽然也想了一些办法,将一些基础模块做成Nuget包的形式,让整个解决方案去引用。但是整个项目还是很臃肿,各个项目之间的耦合性太强,很难将其拆开;无法进行微服务的部署,扩展性差。之...[2023/5/29]
Windows 11 和 Rocky 9 Linux 平台 MySQL 8.0.33 简易安装教程Windows 11 和 Rocky 9 Linux 平台 MySQL 8.0.33 简易安装教程
目录Windows 平台安装 MySQLLinux 平台 Rocky 9 安装 MySQLbinary packagerpm packageyum 源source package
Windows 11 和 Rocky 9 Linux 初体验 MySQL8.0.33 简易安装教程。
MySQ...[2023/5/25]
.NET6 + EF Core + MySQL 创建实体和数据库、EFCore 数据迁移
前言
接上期文章《.NET6项目连接数据库方式方法》,有人问了我几个问题,现在就这几个问题,拓展延申一下创建实体类、数据库。把ORM框架和数据迁移都写进去。
安装ORM框架,这里我们采用EFCore
安装EFCore
我的项目是在Linux上创建的,使用的是vscode开发工具远程开发。为...[2023/5/19]
mysql基础_索引
介绍
“索引”是为了能够更快地查询数据。比如一本书的目录,就是这本书的内容的索引,读者可以通过在目录中快速查找自己想要的内容,然后根据页码去找到具体的章节。
优缺点
优势:以快速检索,减少I/O次数,加快检索速度;根据索引分组和排序,可以加快分组和排序;
劣势:索引本身也是表,因此会占用存储...[2023/5/19]
MySql的数据存储之B+树(浅谈)
一.MySql的实际存储位置
B+树是MySql数据结构的主流存储方式,包括InnoDB和MYISAM引擎,它们的默认存储结构都是B+树
了解B+树前,我们先要知道MySql 的实际存储位置在哪?
有人会说它存在我么的D盘或C盘的MySql文件夹的Data目录里,这个回答没错,我们在深入的了...[2023/5/15]
麻了,一个操作把MySQL主从复制整崩了
前言
最近公司某项目上反馈mysql主从复制失败,被运维部门记了一次大过,影响到了项目的验收推进,那么究竟是什么原因导致的呢?而主从复制的原理又是什么呢?本文就对排查分析的过程做一个记录。
主从复制原理
我们先来简单了解下MySQL主从复制的原理。
主库master 服务器会将 SQL ...[2023/5/12]
MySQL百万数据深度分页优化思路分析
业务场景
一般在项目开发中会有很多的统计数据需要进行上报分析,一般在分析过后会在后台展示出来给运营和产品进行分页查看,最常见的一种就是根据日期进行筛选。这种统计数据随着时间的推移数据量会慢慢的变大,达到百万、千万条数据只是时间问题。
瓶颈再现
创建了一张user表,给create_time字段...[2023/5/10]
MySQL8.0-分组函数ROLLUP的基本用法(GROUPING)
一、ROLLUP简介
ROLLUP是GROUP BY子句的扩展。 ROLLUP选项允许包含表示小计的额外行,通常称为超级聚合行,以及总计行。 通过使用ROLLUP选项,可以使用单个查询生成多个分组集。
MySQL中的ROLLUP是用于 产生汇总输出的修饰符,包括表示超级汇总(较高级别...[2023/5/10]
MySQL如何获取binlog的开始时间和结束时间
MySQL数据库恢复到指定时间点时,我们必须通过MySQL全备+MySQL增量备份(可选)+MySQL的二进制日志(binlog)进行重放来恢复到指定时间点,实际的生产环境中,可能一段时间内生成了多个二进制日志文件(binlog), MySQL本身不会存储二进制日志文件(binlog)的开始时间...[2023/5/8]
【必知必会的MySQL知识】③DML语言
目录前言准备插入数据语法格式插入完整行数据插入多行数据将检索出来的数据插入表更新数据准备两张表语法实践操作删除数据语法实践操作小结
前言
前面的两篇文章中,我们已经对MySQL有了基本了解。
并且知道了怎么用工具连接数据库?怎么创建数据库?怎么创建表?
这一篇呢我们就来看看怎么在我们创建...[2023/5/4]
【必知必会的MySQL知识】④DCL语言
目录一、概述二 、授权2.1 语法格式2.2 语法说明2.3 权限类型2.4 权限级别三、 回收权限3.1 语法格式3.2 语法说明3.3 注意事项四 、实践操作
一、概述
数据控制语言,用来定义访问权限和安全级别。主要包含包括grant,revoke 关键字
grant 授予权限...[2023/5/4]
【必知必会的MySQL知识】⑤DQL语言
目录一、前言二、基础查询2.1 语法2.2 实践操作三、条件查询3.1 语法3.2 where 语句操作符3.3 实践操作四、排序查询4.1 语法格式4.2 实践操作五、分组查询5.1 语法5.2 聚集函数5.2.1 聚集函数简单使用5.3 实践操作5.4 规定与小结六、连接查询(多表查询)6...[2023/5/4]
Mysql中如果建立了索引,索引所占的空间随着数据量增长而变大,这样无论写入还是查询,性能都会有所下降,怎么处理?Mysql中如果建立了索引,索引所占的空间随着数据量增长而变大,这样无论写入还是查询,性能都会有所下降,怎么处理?
索引所占空间的增长确实会对MySQL数据库的写入性能和查询性能造成影响,这主要是由于索引数据过多时会导致磁盘I/O操作变得非常频繁,从而使性能下降。为此,可以采取以下几种方式来减缓这种影响:
1. 限制索引的大小:可以考虑为索引指定大小限制,在存储时仅存储指定大小内的数据。例如...[2023/4/24]
读《mysql是怎样运行的》有感
最近读了一本书《mysql是怎样运行的》,读完后在大体上对mysql的运行有一定的了解。在以前,我对mysql有以下的为什么:
InnoDB中的表空间、段、区和页是什么?
redo log为什么就能实现事务的持久性?
到底什么是意向锁?意向锁有什么用?
mysql中的外连接、内连接到底是什么?...[2023/4/24]
MySQL事务
1. 事务
事务是指一个或者多个数据库操作,要么全部没有执行,要么全部成功执行。
中途失败需要回滚到指定状态,全部执行成功需要确保持久保存在数据库中。
事务拥有四个特性,习惯上被称之为ACID特性。
2. ACID特性
为了更直观的解释ACID特性,下面先说明A, B, C...[2023/4/24]
详解Mysql日期格式并聚合统计示例
目录介绍准备工作实现原理实际操作按天统计按周统计按月统计 介绍
在实际的开发中,我们通常需要对数据进行分组统计,而时间日期是一个常见的分组条件。在 MySQL 中,我们可以使用日期格式化的函数将日期转换成指定格式的字符串,然后按照需要的时间粒度进行分组统计。本文将介绍如何使用 MySQL 日期格...[2023/4/24]
Node定时备份MySQL的实现
目录前言开发部署安装依赖编写代码pm2部署结语 前言
前段时间发生了一件令我哭笑不得的事,部署在 Centos 服务器上的项目,因为需要重新上传· 部署,所以我执行了下面一段命令:
rm -rf /*
当我按下回车之后,发现终端闪过的一行行代码,突然感觉事情并不简单,情...[2023/4/24]
MySQL 中常见的几种高可用架构部署方案MySQL 中常见的几种高可用架构部署方案
MySQL 中的集群部署方案
前言
MySQL Replication
InnoDB Cluster
InnoDB ClusterSet
InnoDB ReplicaSet
MMM
MHA
Galera Cluster
MySQL Cluster
MySQL Fabric
参考
M...[2023/4/21]
MySQL大量脏数据,如何只保留最新的一条?
因为系统的一个Bug,导致数据库表中出现重复数据,需要做的是删除重复数据且只保留最新的一条数据。
具体场景是这样的
有张订单关联额外费用表,而且一个订单号(order_no)记录只能关联同一个费用(cost_id)一次,但是数据库中出现了同一个订单号关联同一个费用n次
当然有人会说上面的...[2023/4/21]
MySQL 主从延迟的常见原因及解决方法
承蒙大家的支持,刚上市的《MySQL实战》已经跃居京东自营数据库图书热卖榜第 1 名,收到的反馈也普遍不错。对该书感兴趣的童鞋可通过右边的链接购买。目前,京东自营有活动,只需 5 折。
主从延迟作为 MySQL 的痛点已经存在很多年了,以至于大家都有一种错觉:有 MySQL 复制的地方就有主从...[2023/4/19]
mysql中的不等于实例详解
目录mysql中的不等于补充:MySQL查询:不等于的使用方法(mysql查询不等于) mysql中的不等于
在mysql中的不等于,<>,!=,is not 多说无益,来个实例!!!
一个简单地表数据:
select * from user where a...[2023/4/17]
Mysql查询所有表和字段信息的方法
目录1 MySQL中information_schema是什么2 根据库名获取所有表的信息3 根据库名获取所有的字段信息4 根据库名获取所有的表和表字段的基本信息5 查询某个字段在多个数据库表中的分布 1 MySQL中information_schema是什么
information_schema...[2023/4/17]
Windows 本地安装 Mysql8.0
前言
看了网上许多关于Windows 本地安装mysql的很多教程,基本上大同小异。但是安装软件有时就可能因为一个细节安装失败。我也是综合了很多个教程才安装好的,
所以本教程可能也不是普遍适合的。现我将自己本地安装的步骤总结如下,如有不对的地方,敬请大家批评指正!!!
安装环境:win7/1...[2023/4/14]
MySQL命令行登入的两种方式
目录方法一:方式二:cmd命令行客户端总结 1.命令行登入mysql
方法一:
开始菜单 -> 所有程序 -> MySQL -> MySQL Server 8.0 -> MySQL 8.0 Command Line Client
方式二:cmd命令行客户端
...[2023/4/14]
MySQL窗口函数实现榜单排名
目录rank()dense_rank()row_number()rank()函数的模拟实现dense_rank()的模拟实现row_number的模拟实现总结 相信大家在日常的开发中经常会碰到榜单类的活动需求,通常在榜单中都会要求返回排名,今天我们就用MySQL的窗口函数来快速实现一下
首先,先...[2023/4/12]
mysql锁及锁出现总结
转载请注明出处:
1.按锁粒度分类:
行锁:锁某行数据,锁粒度最小,并发度高;; 行锁是指加锁的时候锁住的是表的某一行或多行记录,多个事务访问同一张表时,只有被锁住的记录不能访问,其他的记录可正常访问; 行锁是对所有行级别锁的一个统称,比如下面说的记录锁、间隙锁、临键锁都是属于行锁
...[2023/4/10]
白嫖一个月的ES,完成了与MySQL的联动
前言
《腾讯云 x Elasticsearch三周年》活动来了。文章写之前的思路是:在腾讯云服务器使用docker搭建ES。但是理想很丰满,显示很骨感,在操作过程中一波三折,最后还是含着泪美滋滋地,白嫖了一个月的腾讯云ES服务。
最后就是利用腾讯云的Elasticsearch和Kibana,和...[2023/4/6]
Mysql8断电崩溃解决
目录一、概述二、查找原因三、解决方案1.如何找出损坏发生的原因2.如何从损坏中恢复 一、概述
单机Mysql8数据库服务器运行过程中突然断电,导致数据库崩溃,无法重启。
二、查找原因
查看mysql运行错误日志:WIN-SOTMI68HRV6.err (在Data目录下)
InnoD...[2023/3/29]
浅谈MySQL数据库崩溃(crash)的常见原因和解决办法
目录检查 MySQL 数据库的启动时间检查 MySQL 服务状态检查 MySQL 中的 uptime 状态使用 ps 检查进程启动时间检查 MySQL 日志MySQL 数据库 crash 的常见原因MySQL 的 bugMySQL 申请系统资源失败或内存泄漏MySQL 内存占用的计算MySQL 客户...[2023/3/29]
mysql去重查询的三种方法小结
目录前言一、插入测试数据二、剔除重复数据方法1.方法一:使用distinct2.方法二:使用group by3.方法三:使用开窗函数总结 前言
数据库生成环境中经常会遇到表中有重复的数据,或者进行关联过程中产生重复数据,下面介绍三种剔除重复数据的方法,请针对自己的应用场景选择使用。
一、插入...[2023/3/29]
ByteHouse MaterializedMySQL 增强优化
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群
前言
社区版 ClickHouse 推出了MaterializedMySQL数据库引擎,用于将 MySQL 中的表映射到 ClickHouse 中。ClickHouse 服务作为 MySQL 副本,读取 ...[2023/3/27]
MySQL8.0 创建用户及授权 - 看这篇就足够了
什么时候会用到
对接外系统时,需要给其余系统开放访问权限
本系统中,分权限管理数据,防止root权限删库跑路??
mysql版本
MySql8.0+
具体步骤
1.命令行进入MySql
使用 mysql -u#UserName -p#Pa Word 命令进入MySql
#UserNa...[2023/3/24]
MySQL数据库的多种连接方式及工具
目录一、MySQl命令行客户端二、CMD命令进行连接 三、MySQL图形化管理工具 1、Navicat Premium 的使用2、DataGrip 的使用四、不同的电脑上使用Mysql 一、MySQl命令行客户端
在Mysql安装完成后,Mysql命令行会自动配置在计算机上,...[2023/3/24]