当前位置: 首页 > news >正文

MySQL8.0新特性

第十八章_MySQL8.0新特性

1.新特性概述

1. 数据库管理和存储

1.1 数据字典
  • 特性: MySQL 8.0 使用统一的数据字典存储元数据(如表、列、索引等),并将其存储在 InnoDB 表中。

  • 优点

    :

    • 提升性能:减少对文件系统的依赖。

    • 提高一致性:避免元数据与实际数据不同步的问题。

1.2 隐式主键
  • 特性: 当创建没有主键的表时,MySQL 8.0 会自动生成一个隐藏的主键。

  • 优点

    :

    • 提高数据访问效率。

    • 减少手动维护主键的麻烦。


2. SQL 语言增强

2.1 窗口函数
  • 特性: 支持窗口函数(OVER 子句),允许在查询中执行复杂的分析操作。

  • 示例

    :

    SELECT name, salary, RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS rank
    FROM employees;

  • 优点

    :

    • 适合排名、累计总和、移动平均等分析场景。

2.2 公用表表达式(CTE)
  • 特性: 支持递归和非递归 CTE(WITH 子句)。

  • 示例

    :

    WITH RECURSIVE cte AS (SELECT 1 AS nUNION ALLSELECT n + 1 FROM cte WHERE n < 5
    )
    SELECT * FROM cte;

  • 优点

    :

    • 提高查询的可读性和复用性。

    • 递归查询支持层级结构数据处理。

2.3 JSON 增强
  • 特性: 增强了对 JSON 数据类型的支持,包括 JSON 表达式、函数和索引。

  • 示例

    :

    SELECT JSON_EXTRACT(json_column, '$.key') AS value FROM my_table;
  • 新增函数: JSON_TABLE()JSON_ARRAYAGG()JSON_OBJECTAGG() 等。

  • 优点

    :

    • 更高效地处理半结构化数据。

2.4 默认值表达式
  • 特性: 支持列的默认值为表达式。

  • 示例

    :

    CREATE TABLE orders (id INT AUTO_INCREMENT PRIMARY KEY,order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
  • 优点

    :

    • 动态设置默认值,更灵活。


3. 性能优化

3.1 索引增强
  • 特性: 支持隐式列的降序索引(DESC)。

  • 优点

    :

    • 提高查询性能,尤其是在排序需求较多的场景中。

3.2 持久化生成列
  • 特性: 支持生成列的持久化(STORED)。

  • 优点

    :

    • 减少存储开销,同时支持复杂计算。

3.3 查询性能改进
  • 特性: 优化器改进了查询计划的生成,支持更复杂的优化场景,如物化 CTE。

  • 优点

    :

    • 提高复杂查询的执行效率。


4. 安全性增强

4.1 账户锁定和密码策略
  • 特性: 支持用户账户锁定(ACCOUNT LOCK)和密码过期策略。

  • 示例

    :

    ​
    ALTER USER 'user'@'localhost' ACCOUNT LOCK;
  • 优点

    :

    • 提高账户安全性,防止暴力破解。

4.2 默认使用 caching_sha2_password
  • 特性: 默认身份验证插件更改为 caching_sha2_password

  • 优点

    :

    • 提高密码存储的安全性。

4.3 动态权限
  • 特性: 支持动态权限,可以更细粒度地控制用户操作。

  • 示例

    :

    ​
    GRANT BACKUP_ADMIN ON *.* TO 'user'@'localhost';
  • 优点

    :

    • 更灵活的权限管理。


5. JSON 和 GIS 数据类型改进

5.1 JSON 数据类型
  • 新增 JSON 函数,如 JSON_TABLE(),用于将 JSON 数据转换为关系型数据表。

  • 支持 JSON 部分更新,提升性能。

5.2 GIS 数据类型
  • 特性: 改进了对 GIS 数据类型的支持,包括更高效的空间索引。

  • 优点

    :

    • 更适合地理位置相关的应用场景。


6. 开发工具和可用性

6.1 错误日志管理
  • 特性: 错误日志支持多种格式(如 JSON)和日志轮换。

  • 优点

    :

    • 提高日志分析和管理的效率。

6.2 系统变量持久化
  • 特性: 支持动态系统变量的持久化。

  • 示例

    :

    SET PERSIST max_connections = 200;
  • 优点

    :

    • 重启后仍然保留变量值,无需修改配置文件。


7. 其他改进

7.1 数据复制
  • 支持基于事务的复制,增强了复制的稳定性和一致性。

  • 支持并行复制,提高复制性能。

7.2 临时表改进
  • 临时表默认使用 InnoDB 存储引擎,提高事务支持能力。

2.新特性1: 窗口函数

2.2 排名函数

用于给数据分配排名:

  • ROW_NUMBER(): 为每行分配唯一的序号。

  • RANK(): 按排序规则排名,值相同的行具有相同的排名,下一排名会跳过。

  • DENSE_RANK(): 与 RANK() 类似,但不会跳过排名。

  • NTILE(n): 将数据划分为 n 个桶,并为每行分配桶号。

2.3 偏移函数

用于访问窗口内其他行的数据:

  • LAG(column, offset, default): 获取当前行之前第 offset 行的值。

  • LEAD(column, offset, default): 获取当前行之后第 offset 行的值。

  • FIRST_VALUE(column): 获取窗口中第一行的值。

  • LAST_VALUE(column): 获取窗口中最后一行的值。

2.4 比率和累计分布
  • PERCENT_RANK(): 当前行在分组中的百分比排名。

  • CUME_DIST(): 当前行及之前的行在分组中的累计分布比例。

相关文章:

MySQL8.0新特性

第十八章_MySQL8.0新特性 1.新特性概述 1. 数据库管理和存储 1.1 数据字典 特性: MySQL 8.0 使用统一的数据字典存储元数据&#xff08;如表、列、索引等&#xff09;&#xff0c;并将其存储在 InnoDB 表中。 优点 : 提升性能&#xff1a;减少对文件系统的依赖。 提高一致…...

Oracle EBS GL定期盘存WIP日记账无法过账数据修复

系统环境 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 问题症状 用户反映来源为“定期盘存”和类别为“WIP”的日记账无法过账,标准日记账的界面上的过账按钮灰色不可用。但是,在超级用户职责下,该日记账又可以过账,细心检查发现该业务实体下有二个公司段值15100和…...

【绝对无坑】Mongodb获取集合的字段以及数据类型信息

Mongodb获取集合的字段以及数据类型信息 感觉很LOW的一个数据仓工具seatunel&#xff0c;竟然不能自动读取mongodb的表结构信息&#xff0c;需要手工创建。 然鹅&#xff0c;本人对mongodb也是新手&#xff0c;很多操作也不知所措&#xff0c;作为一个DBA&#xff0c;始终还是…...

【Git版本控制器--1】Git的基本操作--本地仓库

目录 初识git 本地仓库 认识工作区、暂存区、版本库 add操作与commit操作 master文件与commit id 修改文件 版本回退 撤销修改 删除文件 初识git Git 是一个分布式版本控制系统&#xff0c;主要用于跟踪文件的更改&#xff0c;特别是在软件开发中。 为什么要版本…...

C++并发编程之无锁数据结构及其优缺点

在C并发编程中&#xff0c;无锁数据结构&#xff08;Lock-free Data Structures&#xff09;是指那些在实现中不使用互斥锁&#xff08;如std::mutex&#xff09;来保证线程安全的数据结构。相反&#xff0c;它们利用原子操作和内存模型来确保多线程环境下的正确性和高效性。下…...

Ubuntu上,ffmpeg如何使用cuda硬件解码、编码、转码加速

本文使用 Ubuntu 环境。Ubuntu 直接使用 APT 安装的就支持 CUDA 加速。本文使用这样下载的版本进行演示&#xff0c;你自己编译或者其他源的版本可能会不同。 ffmpeg 的一些介绍&#xff0c;以及 macOS 版本的 ffmpeg 硬件加速请见《macOS上如何安装&#xff08;不需要编译安装…...

rclone,云存储备份和迁移的瑞士军刀,千字常文解析,附下载链接和安装操作步骤...

一、什么是rclone&#xff1f; rclone是一个命令行程序&#xff0c;全称&#xff1a;rsync for cloud storage。是用于将文件和目录同步到云存储提供商的工具。因其支持多种云存储服务的备份&#xff0c;如Google Drive、Amazon S3、Dropbox、Backblaze B2、One Drive、Swift、…...

Ubuntu | 系统软件安装系列指导说明

文章目录 Ubuntu 系统软件安装系列指导说明工具系列1. Docker 与 Docker-Compose部署与安装 环境系列1. Golang部署与安装 数据库系列1. PostgreSQL17.2源码部署与安装 Ubuntu 系统软件安装系列指导说明 工具系列 1. Docker 与 Docker-Compose部署与安装 链接 环境系列 1…...

队列(算法十三)

简介 几乎没有单纯之考察队列的&#xff0c;队列一般只作为一个辅助工具 队列常服务于BFS queue接口 1.N叉树的层序遍历 link: 思路&#xff1a; 队列 层序遍历即可 code /* // Definition for a Node. class Node { public:int val;vector<Node*> children;Node()…...

vLLM私有化部署大语言模型LLM

目录 一、vLLM介绍 二、安装vLLM 1、安装环境 2、安装步骤 三、运行vLLM 1、运行方式 2、切换模型下载源 3、运行本地已下载模型 四、通过http访问vLLM 一、vLLM介绍 vLLM&#xff08;官方网址&#xff1a;https://www.vllm.ai&#xff09;是一种用于大规模语言模型&#x…...

OpenAI Whisper:语音识别技术的革新者—深入架构与参数

当下语音识别技术正以前所未有的速度发展&#xff0c;极大地推动了人机交互的便利性和效率。OpenAI的Whisper系统无疑是这一领域的佼佼者&#xff0c;它凭借其卓越的性能、广泛的适用性和创新的技术架构&#xff0c;正在重新定义语音转文本技术的规则。今天我们一起了解一下Whi…...

基于当前最前沿的前端(Vue3 + Vite + Antdv)和后台(Spring boot)实现的低代码开发平台

项目是一个基于当前最前沿的前端技术栈&#xff08;Vue3 Vite Ant Design Vue&#xff0c;简称Antdv&#xff09;和后台技术栈&#xff08;Spring Boot&#xff09;实现的低代码开发平台。以下是对该项目的详细介绍&#xff1a; 一、项目概述 项目名称&#xff1a;lowcode-s…...

【Rust】错误处理机制

目录 思维导图 引言 一、错误处理的重要性 1.1 软件中的错误普遍存在 1.2 编译时错误处理要求 二、错误的分类 2.1 可恢复错误&#xff08;Recoverable Errors&#xff09; 2.2 不可恢复错误&#xff08;Unrecoverable Errors&#xff09; 三、Rust 的错误处理机制 3…...

Logback日志技术

Logback日志技术 日志 日志&#xff08;Logging&#xff09;是软件开发和运维中用于记录系统或应用程序运行期间发生的运行信息、状态变化、错误信息等的一种机制&#xff0c;这种记录的方式就好像我们日常生活中写日记一样。它提供了一种持久化的方式&#xff0c;使得开发者…...

9分布式微服务架构

分布式微服务架构不光需要从架构上的设计优化系统&#xff0c;还要在编码上优化达到最好的效果 中心化的设计 中心化的设计比较简单&#xff0c;分布式集群中的角色分为两种&#xff0c;管理者和被管理者。 在一个分布式或者集群中&#xff0c;管理者角色管理着其他处理实际…...

Leecode刷题C语言之统计重新排列后包含另一个字符串的子字符串数目②

执行结果:通过 执行用时和内存消耗如下&#xff1a; void update(int *diff, int c, int add, int *cnt) {diff[c] add;if (add 1 && diff[c] 0) {// 表明 diff[c] 由 -1 变为 0(*cnt)--;} else if (add -1 && diff[c] -1) {// 表明 diff[c] 由 0 变为 -…...

HTML和CSS相关的问题,为什么页面加载速度慢?

页面加载速度慢是网站优化中一个常见的问题&#xff0c;可能由于多种原因&#xff0c;包括HTML和CSS的代码编写方式、资源的加载顺序、页面渲染的复杂性等。以下是一些常见的原因和优化方法&#xff0c;结合实际项目代码示例进行讲解。 1. 过多的资源请求 如果页面包含大量的…...

LiveGBS流媒体平台GB/T28181常见问题-没有收到视频流播放时候提示none rtp data receive未收到摄像头推流如何处理?

LiveGBS没有收到视频流播放时候提示none rtp data receive未收到摄像头推流如何处理&#xff1f; 1、none rtp data receive2、搭建GB28181视频直播平台 1、none rtp data receive LiveSMS 收不到下级推流 首先需要排查服务器端 UDP & TCP 30000-30249 端口是否开放其次排…...

Flask表单处理与验证

Flask是一个轻量级的Python框架&#xff0c;它通过扩展库提供了对表单处理与验证的支持。WTForms是一个流行的Flask扩展库&#xff0c;用于创建和验证Web表单。它提供了一种声明式的方法来定义表单结构和验证逻辑&#xff0c;使得表单处理更为简洁和优雅。下面&#xff0c;我们…...

正泰电工携手图扑:变电站数字孪生巡检平台

随着电力行业的快速发展与智能化转型&#xff0c;传统的人工巡检方式难以匹配现代电网对于效率、安全和精细化管理的高标准要求。在此背景下&#xff0c;构建智慧变电站巡检系统已成为推动变电站智能化进程、实现高效运营和保障电网可靠性的重要战略。 图扑软件与正泰电工联合…...

CodeSys随机数生成实战:从GPS通信验证到实验作业的完整代码解析

CodeSys随机数生成实战&#xff1a;从GPS通信验证到实验作业的完整代码解析 在工业自动化领域&#xff0c;随机数生成看似是个小众需求&#xff0c;直到你遇到需要模拟设备故障、生成验证码或创建随机测试场景时才会发现它的重要性。CodeSys作为工业控制领域的"瑞士军刀&…...

2026年4月OpenClaw(Clawdbot)一键部署及接入Skills保姆级教程,让OpenClaw(个人AI助手) 7*24 小时为你工作!

2026年4月OpenClaw&#xff08;Clawdbot&#xff09;一键部署及接入Skills保姆级教程&#xff0c;让OpenClaw(个人AI助手) 7*24 小时为你工作&#xff01;OpenClaw&#xff08;原Clawdbot&#xff09;作为2026年主流的AI自动化助理平台&#xff0c;可通过阿里云轻量服务器实现7…...

怕 AI 短剧平台抽成?自研 AI 短剧创作系统贴牌合作,全部收益自留

入局 AI 短剧&#xff0c;最头疼就是被平台高额抽成、规则限制、数据锁死。流量自己做、内容自己产&#xff0c;收益却要分走大半&#xff0c;随时还面临限流封号。选源头自研系统贴牌合作&#xff0c;彻底摆脱平台捆绑&#xff0c;所有收益全额自留&#xff0c;干货分点讲透&a…...

“AI人工智能+”政务一网通办多智能体协同建设方案:五层两体系总体架构、数据与安全体系、信创适配与实施运维

该方案是一份成熟的技术蓝图&#xff0c;它不仅仅是将AI简单叠加到政务系统&#xff0c;而是通过“多智能体协同”重构了业务组织逻辑。方案详细定义了从语料治理、模型微调、Agent协作、信创适配到安全合规的全链路工程细节&#xff0c;具有极强的实操性与前瞻性&#xff0c;适…...

从浮点到定点:在Xilinx Vivado里给FPGA设计做‘瘦身’的实战避坑指南

从浮点到定点&#xff1a;Xilinx Vivado中FPGA设计的资源优化实战 当你在Vivado中完成了一个基于浮点运算的算法设计&#xff0c;却发现LUT占用率爆表或者时序无法收敛时&#xff0c;那种挫败感我深有体会。去年在做一个实时图像处理的滤波器时&#xff0c;我原本优雅的浮点设计…...

Oracle 数据库中的 REF 类型与触发器的使用

在 Oracle 数据库中,引用类型(REF)是对象类型之间关联的一种强大工具。特别是在复杂的企业应用中,REF 类型可以帮助我们建立对象间的引用关系,模拟现实世界的关系模型。本文将通过一个实际的例子,介绍如何在 Oracle 中使用 REF 类型,以及如何通过触发器(Trigger)来确保…...

VASP表面建模进阶:利用现代脚本工具实现Slab模型原子选择性固定(POSCAR高效处理)

1. 为什么需要自动化处理POSCAR文件 在计算材料学领域&#xff0c;VASP作为第一性原理计算的黄金标准工具&#xff0c;其输入文件POSCAR的准确性直接决定了计算结果的可靠性。传统手动处理方式存在几个致命缺陷&#xff1a;首先&#xff0c;用Excel手工标记原子固定状态极易出错…...

终极指南:3步告别黑苹果配置噩梦,OpCore Simplify让你轻松搞定OpenCore EFI

终极指南&#xff1a;3步告别黑苹果配置噩梦&#xff0c;OpCore Simplify让你轻松搞定OpenCore EFI 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还…...

用Python+Neo4j构建A股知识图谱:从同花顺网页到Cypher查询的完整实战

用PythonNeo4j构建A股知识图谱&#xff1a;从数据采集到智能分析的完整技术方案 金融数据分析领域正在经历一场由知识图谱技术驱动的变革。本文将分享一个完整的A股知识图谱构建方案&#xff0c;涵盖从同花顺网页数据采集到Neo4j图数据库应用的完整技术链路。不同于简单的工具使…...

win-acme证书自动续期架构深度解析:从故障排查到高可用部署

win-acme证书自动续期架构深度解析&#xff1a;从故障排查到高可用部署 【免费下载链接】win-acme Automate SSL/TLS certificates on Windows with ease 项目地址: https://gitcode.com/gh_mirrors/wi/win-acme 技术背景与挑战 在当今云原生和微服务架构盛行的时代&am…...