MySQL

浅谈Mysql8和mysql5.7的区别

1.NoSql存储 Mysql从5.7 版本提供了NoSQL的存储功能,在8.0中这部分得到一些修改,不过这个在实际中用的极少 2.隐藏索引 隐藏索引的特性对于性能调试非常有用,在8.0 中,索引可以被隐藏和显示,当一个索引隐藏时,他不会被查询优化器所使用...

MySQL 时间类型用 datetime, timestamp 还是 integer 更好

问题 今天我们来探讨一个有意思的问题,先说场景: 这是一个做在线文档产品的业务,需要给用户展示文档的编辑记录,现在我们叫它【智能文档】。 智能文档会不定期给文档数据打一个快照,保存起来。用户可以在历史记录中查阅快照。 快照之间会展示具体的变更记录,比如&l...

关于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 值时显示值并退出循环。...

SQL中的开窗函数(窗口函数)

窗口函数 简单理解,就是对查询的结果多出一列,这一列可以是聚合值,也可以是排序值。 开窗函数一般就是说的是over()函数,其窗口是由一个 OVER 子句 定义的多行记录 开窗函数一般分为两类,聚合开窗函数和排序开窗函数。 简单来说,窗口函数有以下功能: ...

MySQL执行SQL语句的流程详解

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

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

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