MySQL

关于mysql 8.x 中insert ignore的性能问题

mysql 8.x中insert ignore性能问题 mysql中replace into效率很差,多进程并发一下就会锁表,所以应该用on duplicate 来做更新,这是众所周知的了。没想到insert ignore也有性能坑,记录下遇到的问题。 为...

使用LEFT JOIN 统计左右存在的数据问题

最近做了一个数据模块的统计,统计企业收款、发票相关的数据,开始统计是比较简单,后面再拆分账套统计就有点小复杂,本文做一个简单的记录。 需求 企业表 企业表t_company有如下字段:标识id、企业名称name: id name 1 腾讯 2 百度 收款表...

MySQL EXPLAIN执行计划解析

前言 调用EXPLAIN可以获取关于查询执行计划的信息,以及如何解释输出。EXPLAIN命令是查看查询优化器如何决定执行查询的主要方法,但该动能也有局限性,它的选择并不总是最优的,展示的也并不一定是真相。 1 调用EXPLAIN 要使用EXPLAIN,只需...

Mysql 8.0解压版下载安装以及配置的实例教程

前言 首先声明,这里是Mysql 8.0.27版本、64位操作系统解压版mysql的下载及安装配置及修改初始密码。如果是其他版本的mysql安装,可以自行查找其他方法,记住搜索的时候最好加上是什么版本的,因为不同版本的mysql安装的时候有些命令是不同的,...

MySQL视图的概念、创建、查看、删除和修改详解

一、什么是视图 小学的时候,每年都会举办一次抽考活动,意思是从每一个班级里面筛选出几个优秀的同学去参加考试。这时候很多班级筛选出来的这些同学就可以临时组成一个班级,如果我们把每一个班级都当做是一张真实的表,这个临时的班级在数据库里就可以当做一个视图,也就是...

MySQL基础入门之Case语句用法实例

引言 MySQL CASE 是一个 MySQL 语句查询关键字,它定义了处理循环概念以执行条件集并使用 IF ELSE 返回匹配案例的方式。 MySQL 中的 CASE 是一种控制语句,它验证条件案例集,并在第一个案例满足 else 值时显示值并退出循环。...

MySQL执行SQL语句的流程详解

1、通常sql执行流程 用户发起请求到业务服务器,执行sql语句时,先到连接池中获取连接,然后到mysql服务器执行查询。 1.1 问题1:MySQL谁去处理网络请求? msyql服务器谁负责从这个连接中去监听这个网络请求?谁负责从网络连接里把数据读出来?...

MySQL中LAG()函数和LEAD()函数的使用

一、窗口函数的基本用法 从MySQL8之后才开始支持窗口函数 <窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>) 二、LAG()和LEAD()函数介绍 lag和...

MySQL数据库如何给表设置约束详解

一、PK(主键约束) 1、什么是主键? 在了解主键之前,先了解一下什么是关键字 关键字:在表中具有唯一性的字段,比如一个人的身份证号,学号。一个表中可以有多个关键字。 主键也叫主关键字,就是由一个或多个关键字组成的,并且可以通过主键获得整个表的信息。比如订...

mysql 字符串正则表达式及说明

概述 名称 描述 NOT REGEXP 否定的REGEXP REGEXP 字符串是否匹配正则表达式 RLIKE 字符串是否匹配正则表达式 正则表达式是指定复杂搜索的模式的有力方式。本文讨论可用于正则表达式匹配的操作符,并举例说明可以用于正则表达式操作的一些...

浅谈MySQL 有哪些死锁场景

1 环境准备 2 同一张表下的死锁 3 不同表下的死锁 4 间隙锁下的死锁 5 INSERT 语句的死锁 首先一起来复习一下死锁的概念:死锁是指两个或者多个事务在同一资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环的现象。 下面我们通过几个实验,...