![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 75
Mr-X~
持续学习,不断进步!
展开
-
mysql中的lead函数和over函数
over函数是用来分组加排序的,然后等over函数分好组排好序之后,再使用lead函数去找当前分组内的下一行数据的某个字段值,具体是哪个字段由over函数指定,如果当前分组内没有下一条数据的话,那么返回null空值。我们有一个销售表,有很多类型的产品,我们想要根据产品id分组,然后再根据产品销售时间排序,我们想要显示下个月的销售额,以及下个月增加的销售额。lead函数的功能:取出当前分组的下一条数据的某个字段的值,如果当前分组内已经是最后一条数据了,那么会返回null。原创 2024-06-21 14:48:25 · 455 阅读 · 0 评论 -
如何快速下载mysql的不同版本并启动mysql服务?
首先使用管理员的方式打开我们的命令行面板,如下图:右键以管理员身份运行。原创 2023-11-17 18:32:43 · 543 阅读 · 0 评论 -
Mysql第四篇---数据库索引优化与查询优化
文章目录数据库索引优化与查询优化索引失效案例数据准备1. 全值匹配2 最佳左前缀法则(联合索引)主键插入顺序4 计算、函数导致索引失效5 类型转换(自动或手动)导致索引失效6 范围条件右边的列索引失效7 不等于(!=或者<>)索引失效8 is null可以使用索引, is not null无法使用索引9 like以通配符%开头索引失效10 OR前后存在非索引的列,索引失效11 数据库和表的字符集统一使用utf8mb412 一般性建议关联查询优化数据准备左外连接,右外连接,和内连接的区别1 左外连原创 2023-10-24 19:29:06 · 669 阅读 · 1 评论 -
Mysql第三篇---响应太慢?数据库卡顿?如何优化?
一条SQL查询语句在执行前需要确定查询执行计划,如果存在多种执行计划的话,MySQL会计算每个执行计划所需要的成本,从中选择成本最小的一个作为最终执行的执行计划。如果想要查看某条SQL语句的查询成本,可以在执行完这条SQL语句之后,通过查看当前会话中的last_query_cost变量值来得到当前查询的成本。它通常也是评价一个查询的执行效率的一个常用指标。这个查询成本对应的是SQL语句所需要读取的页的数量。然后我们使用存储过程往表里面存储100多万条数据;原创 2023-10-23 18:07:17 · 2824 阅读 · 1 评论 -
MySql第三篇---索引的创建与设计原则
选择索引的最终目的是为了使查询的速度变快,上面给出的原则是最基本的准则,但不能拘泥于上面的准则,在以后的学习和工作中进行不断的实践,根据应用的实际情况进行分析和判断,选择最合适的索引方式。WHERE条件(包括GROUP BY、ORDER BY)里用不到的字段不需要创建索引,索引的价值是快速定位,如果起不到定位的字段通常是不需要创建索引的。因为更新数据的时候,也需要更新索引,如果索引太多,在更新索引的时候也会造成负担,从而影响效率。等语句的性能,因为表中的数据更改的同时,索引也会进行调整和更新,会造成负担。原创 2023-10-23 15:45:01 · 247 阅读 · 0 评论 -
Mysql第二篇---InnoDB数据存储结构
页a, 页b, 页c… 页n这些页可以不在物理结构上相连, 只要通过双向链表相关联即可. 每个数据页中的记录会按照主键值从小到达的顺序组成一个单向链表, 每个数据页都会为存储在它里面的记录生成一个页目录, 在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽位, 然后再遍历该槽对应分组中的记录即可快速找到指定的记录。原创 2023-10-20 17:27:03 · 523 阅读 · 0 评论 -
mysql第一篇---索引
MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构“,满足特定查找算法。这些数据结构以某种方式指向数据,这样就可以在这些数据结构的技术上实现高级查找算法。索引是在存储引擎中实现的因此每种存储引擎的索引不一定完全相同,并且每种存储引擎不一定支持所有索引类型。同时,存储引擎可以定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引。总索引长度至少为256字节。原创 2023-10-19 17:42:39 · 204 阅读 · 0 评论 -
Mysql中日期相关的函数
FROM_UNIXTIME(时间戳),如下图:month获取月份,如下图:原创 2023-10-18 14:27:37 · 136 阅读 · 0 评论 -
mysql检验分区性能的操作
如上图我们给part_tab5创建的分区为1024个,因为mysql中允许最多有1024个分区;之前我测试的是创建8个分区,然后插入500万条数据,然后按照id查询(非索引),part_tab5表的查询速率大约是part_tab6表的查询速率的9倍;注意这里测试的时候不要按照主键查询,因为主键是索引,按照索引查询的时候,即便没有分区,也是非常快的。现在我很好奇如果我创建了1024个分区,然后插入5000万条数据,带分区的查询速率会比不带分区的快多少呢?原创 2023-10-18 10:14:57 · 325 阅读 · 0 评论 -
MySql分区介绍和Range案例
通俗地讲表分区是将一个大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区。如:某用户表的记录超过了600万条仓储信息,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其它的条件分区。原创 2023-10-17 20:45:47 · 207 阅读 · 0 评论 -
区,段,碎片区与表空间结构
另外在数据库中,还存在着区(Extent),段(Segment)和表空间(Tablespace)的概念。原创 2023-10-17 14:07:00 · 205 阅读 · 0 评论 -
mysql隔离级别
fsd原创 2023-05-22 10:27:03 · 106 阅读 · 0 评论 -
mysql的聚簇索引和非聚簇索引
mysql索引原创 2022-09-26 18:23:27 · 764 阅读 · 0 评论 -
如何设计性能优良的mysql索引?
mysql原创 2022-09-12 21:37:48 · 646 阅读 · 1 评论 -
如何根据Explain执行计划对数据库查询语句进行优化
mysql优化原创 2022-09-12 12:45:20 · 998 阅读 · 0 评论 -
MySQL中的各种查询
文章目录MySQL中的各种查询基础查询条件查询排序查询常见函数查询分组查询连接查询内连接外连接交叉连接子查询联合查询MySQL中的各种查询基础查询条件查询#语法:select 查询列表 from 表名 where 筛选条件;#分类:# 一.按条件表达式筛选,条件运算符:> < = != <> >= <=# 二.按逻辑表达式筛选,逻辑运算符:&& || ! and or not# 三.模糊查询:like betwee原创 2021-05-28 11:37:17 · 2190 阅读 · 3 评论 -
mysql中的视图
文章目录mysql中的视图创建视图并查看视图中的数据查看视图结构插入数据到视图中更新视图中的数据删除视图中的数据删除视图mysql中的视图创建视图并查看视图中的数据#创建视图create view 视图名 assql查询语句;#查看视图数据select * from 视图名查看视图结构#查看视图结构# desc 视图名; 此命令查看的视图结构不是很详细,不能够显示出视图对应的sql语句# show create view 视图名; 此命令查看的视图结构很详细,可以显原创 2021-05-27 19:07:53 · 2916 阅读 · 1 评论 -
DML数据操纵语言
文章目录DML数据操纵语言修改表中的某一行的数据往表中插入数据删除表中的数据DML数据操纵语言DML是Data Manipulation Language的缩写,意思是数据操作语言。修改表中的某一行的数据# 修改表中的某一行的数据# update 表名 set 列名=新值,列名=新值.... where 筛选条件;往表中插入数据# 往表中插入数据# insert 表名(列名1,...) values(值1,...),(值1,...)....;#如果是插入全部列数据,则表名后面的(列名1原创 2021-05-27 11:15:07 · 484 阅读 · 1 评论 -
DDL数据定义语言
文章目录DDL(Data Definition Language)数据定义语言数据库的管理表的管理表的创建表的删除表的复制表的修改DDL(Data Definition Language)数据定义语言DDL其实是Data Definition Language的缩写,意思就是数据定义语言。数据库的管理#创建一个数据库# create database 数据库名; 此命令可以创建一个数据库# create database 数据库名 character set utf8; 创建一个字符集是原创 2021-05-27 10:42:23 · 2396 阅读 · 5 评论 -
mysql中怎样创建函数?
文章目录mysql中怎样创建函数?函数的参数列表通过mysql服务器创建函数通过SQLyog客户端创建函数mysql中怎样创建函数?创建函数有两种方式,一种是通过mysql服务器端创建,另外一种是通过SQLyog客户端创建;函数的参数列表# 参数列表包括两部分 参数名 参数类型通过mysql服务器创建函数先来看第一种方式,首先进入mysql服务器端窗口,如下图:然后选择一个数据库,我这里选择的是zhaobo数据库,如下图:创建函数的代码如下:delimiter $$cre原创 2021-05-26 18:34:48 · 16994 阅读 · 6 评论 -
mysql中怎么创建存储过程?
文章目录mysql中怎么创建存储过程?存储过程的参数列表通过mysql服务器创建存储过程通过SQLyog客户端创建存储过程mysql中怎么创建存储过程?创建存储过程有两种方式,一种是通过mysql服务器端创建,另外一种是通过SQLyog客户端创建;存储过程的参数列表# 参数列表包含三部分 参数模式 参数名 参数类型#举例 in stuname varchar(20)# in参数模式:被该模式修饰的参数可以作为输入参数,也就是该参数需要调用的传入值# out参数模式:被该模式修饰的参数原创 2021-05-26 17:35:44 · 27953 阅读 · 7 评论