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

MySQL优化(持续更新)笔记

一、insert优化 :

之前:项目通常是一条insert一条的执行,每一次都需要与MySQL进行建立连接进行网络传输,效率很低

现在:

1.- 批量插入(一条sql就行,一次500-1000)

可以与MyBatis联系起来如何优化我们之前写的语句

- 手动提交事务(MySQL默认执行一条就自动提交一次,这样频繁地开启提交效率也是非常低的,统一执行完再插入)

- 主键顺序提交事务

2.想要大量插入数据,使用insert性能太低,可以使用MySQL数据库提供的load指令来插入数据
将本地的数据(每条数据要符合一定规则的)直接加载到数据库文件当中,比如:每一个字段以逗号分割

执行一百万的数据,耗时16秒,如果是使用inser那么就需要十多分钟

注意需要按照主键顺序进行插入(效率高于乱序)

二、主键优化:

非叶子节点的页中存放的是行数据! 每个页中至少包含2行数据,根据主键排列

主键顺序插入:

    第一个数据页写满了,我再去申请写第二个数据页.....

    先在第一个页中插入数据(叶子节点),直到页满了,会申请第二个页继续插入数据.且页和页之间是双向指针!

主键乱序插入:

      主键乱序插入的情况下,可能会发生[页分裂]现象(50这个叶子节点并不会在第三页插入,而是在47后面,因为47后面还有一点空间)

50在第一页会想插入,那么首先将第一页的后百分之五十数据分裂开,将这些数据分配到第三页中,然后将50要插入的数据放到最后(比较耗性能)

页合并(当删除某一个数据,并不会真正从磁盘去除,而只是做了标记,如果被标识,就允许其他叶子结点声明使用,当达到一定的阈值的时候,就会去查看左右相邻的页看是否有合并的可能性
左边数据页满了,且没有标识删除状态,所以合并不了,再看右边的数据页,还有百分之50处于空闲,3号的数据移动到2号
在创建表或者是创建索引的时候我们可以去指定MERGE THRESHOLD

主键设计原则:

- 满足业务需求的情况下,尽量降低主键的长度.(在二级索引中叶子节点挂的是记录的主键,如果主键过长会大量浪费磁盘IO)
- 尽量使用auto_increment自增主键,来保证主键顺序插入(乱序插入容易导致"页分裂"以及"页合并"现象,虽然顺序插入可能也会但是频率会比较低!)
- 主键尽量使用自然主键+单一主键.而不要选择业务主键+复合主键.
- 尽量减少对主键的修改.一般主键都是一条记录在一个表中的唯一标识,会去动到索引的组织结构

三、order by优化:

注意:Using index性能高,尽量优化成Using index

以下查询字段不在索引中(没有覆盖索引),可能会导致回表操作(查询的字段不包含department_id),从而产生Using Filesort,降低了性能。

效率相对较低,查询的字段没有包含该部门ID,只有员工ID,员工名称,导致查询的时候走Using FileSort.(我这里已经加了该字段索引

改进:现在走Using index,通过索引返回有序数据 emplyee_id,emplyee_id是该索引(叶子结点)下面挂的数据查询的department_id就是索引字段的值,就不需要再额外查询

现在我创建一个复合索引(项目的话,一般建议采用复合索引)

默认两个字段都是升序:(asc,没有指定的话默认都是asc),还是走Using Index  

两个字段都是倒序:反向扫描索引,然后走Using Index,性能也比较好

注意:以下违背了最左前缀法则,在创建索引的时候 department_id是排在第一位,不能在查询的时候直接跨域先排序salary

注意:我们在创建索引的时候,如果没有指定顺序,默认都是升序往后走,先按照depart升序,然后再按照sal.如果现在是要按照sal要倒序,一个升序,一个倒序,还需要额外的创建排序(复合索引),否则走Using fileSort

改进(解决):

先查看一个整张表的索引结构
collection:A默认按照升序,此时salary需要额外去排,如何去优化???

我们再次创建一个复合索引,这次的索引不走两个默认都为升序,而是一个升序一个倒序,规避了Using Filesort出现

查看结果:

注意: 上面都是满足覆盖索引,才会在索引的条件下直接有序排列

总结:
* 根据排序字段建立合适的索引,多字段排序时,也遵守最左前序法则!
* 尽量使用覆盖索引
* 多字段排序,一个升序一个降序,注意创建联合索引的规则(asc / desc)

补充:

explain select id,age,phone from tb_user order by phone,age  违反了最左前缀法则,会fillsort!!!

group by优化:需要建立适当的索引来提升,分组底层其实也是排序,所以尽量给group by后面字段进行加索引!在未添加索引时的分组搜索,默认走Using temporary 效率比较低
我们一般添加索引的时候,比较多用于复合索引

创建联合索引

有用到索引,但是也用到了临时表,效率比较低

分组遵循最左前缀法则 走Using Index

这里也满足最左前缀法则

四、limit优化:

对limit来说,对于数据量大数据,越往后效率越低。耗时越大,到五百万条时,耗时甚至达到19.5s

limit的原理(重点):

  limit的原理:
    server层会调用存储引擎层提供的接口,查询出来所有数据,存储到server层的结果集中,并抛弃掉前面不需要的数据然后返回给客户端....
    limit 200000,10  ===>  需要调用引擎层的接口查询出来前200010条的所有数据(先调用接口查询出所有)并返回给server层,然后由server层再抛弃掉前200000条数据,只返回后10条給客户端....所以说从引擎层获取许多无用的数据然后又抛弃掉,这是非常耗时的!

1.先满足覆盖索引,将要查询的记录的ids集合查询出来(子查询,一会要根据ID进行连接)

2.然后将上面查询出来的表作为子表,进行子查询,这样走的是主键索引,会很快

3.那么从一开始耗时19.5秒提升到11.5秒

注意:limit 不适合大数据量

五、count优化:

   在InnoDB引擎中,在大数据量的情况下count()计数操作本身就是比较耗时的,因为需要扫描每一行记录,然后进行计数的累加!本身就比较耗时,其实这里是不方便优化的.如果要优化可以考虑自己计数!


count的几种用法:

1.我们可以自己计数,借助redis插入数据时,计数加1 ,删除时计数减一,比较繁琐。

2.count(主键):不用再判断是否为null,但也是需要把id先取出来才能累计

3.count(字段):先判断有没有not null  ,没有的话服务层还要额外的判断

4.count(1):  只要不是null,放个0,-1,1都可以,然后逐行累加,不会取值

5.count(*):专门针对优化,不会取值,直接累加

六、update优化:

MySQL事务隔离级别默认为行锁

两个事务
其中一个事务update数据的时候如果根据索引字段进行的更新,那么开启的就是行级锁.(这个时候我只针对我某一行的修改,我只锁住该行,其他事务操作自己的行,互不影响,互不干扰)
如果是根据非索引字段更新,那么就是开启表锁了(此时其他事务在操作的时候直接卡住,必须等待该锁被释放才能执行)!别的事务就不能更新了!!!

我们update数据的时候一定要根据索引字段进行更新,不然行级锁就要被升级为表锁了!!!
成为表锁了,我们的并发性能就会降低!!!

相关文章:

MySQL优化(持续更新)笔记

一、insert优化 : 之前:项目通常是一条insert一条的执行,每一次都需要与MySQL进行建立连接进行网络传输,效率很低 现在: 1.- 批量插入(一条sql就行,一次500-1000) 可以与MyBatis…...

MySQL表的操作 -- 表的增删改查

目录 1. 表的创建2. 表的查看3. 表的修改4. 表的删除5. 总结 1. 表的创建 1.查看字符集及效验规则 2. 表的创建 CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;创建用户表1 创建用…...

Java 数组:深度解析

前言 数组作为Java中最基础也是最强大的数据结构之一,其高效性和灵活性在性能关键型应用中无可替代。本文将从进阶使用开始,逐步深入探索Java数组的高级特性和大师级技巧,帮助开发者全面掌握数组技术的精髓。 一、数组基础回顾与性能特性 1.1 数组基本特性对比 特性Java数…...

【基于Qt的QQMusic项目演示第一章】从界面交互到核心功能实现

🌹 作者: 云小逸 🤟 个人主页: 云小逸的主页 🤟 motto: 要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前,其次就是现在&…...

[Mybatis-plus]

简介 MyBatis-Plus (简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变。Mybatis-plus官网地址 注意,在引入了mybatis-plus之后,不要再额外引入mybatis和mybatis-spring,避免因为版本…...

【EDA】EDA中聚类(Clustering)和划分(Partitioning)的应用场景

在VLSI物理设计自动化中,聚类(Clustering)和划分(Partitioning)是两个互补但目标和应用场景截然不同的关键步骤,其核心区别如下: 一、应用阶段与核心目标 1. 聚类(Clustering&…...

PySide与PyQt对比:为何PySide是更优选择

PySide与PyQt对比:为何PySide是更优选择 引言 在Python桌面应用开发领域,Qt框架的绑定库一直是首选方案。两大主要选择—PySide和PyQt,虽然功能相似,但在许可证、性能和支持方面存在显著差异。本文将深入探讨为何PySide通常是更…...

LVGL移植高通矢量字库GT5SLAD3BFA

字库芯片: GT5SLAD3BFA MCU: STM32F429 LVGL版本:V8.4 一,实现gt_read_data() gt_read_data()函数的作用:与字库flash进行通信,函数的定义里调用spi发送数据和接收数据的接口。用户只需要实现该函数,就可以…...

7.0 sharpScada的sql数据的安装

本文介绍开源库SharpScada的配置过程。 1,还原数据库 2.打开SQL server2014配置启动器,并启用Named Pipes,以及TCP/IP 3.启动SQL Server服务中的SQL Server Browser 4.允许远程连接...

杂项知识点

杂项 1 激活函数1.1 sigmoid1.2 tanh1.3 Relu1.4 leakRelu 1 激活函数 常用的激活函数包括sigmoid tanh Relu leakRelu 1.1 sigmoid import torch import numpy as np import matplotlib.pyplot as plt # sigmoid tanh Relu leakRelu ## 1 sigmoid ### 1.1 代码复现sig…...

Android项目升级插件到kotlin 2.1.0后混淆网络请求异常

背景 项目kt插件1.9.24升级到2.1.0后打包编译release网络请求失败了。 retrofit版本2.9.0 错误详情 java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedTypeat retrofit2.m.a(Unknown Source:2477)at retrofit2.K.invoke(U…...

uniapp 仿企微左边公司切换页

示例代码&#xff1a; <template><view class"container"><!-- 遮罩层 --><view class"mask" v-if"showSidebar" click"closeSidebar"></view><!-- 侧边栏 --><view class"sidebar"…...

Milvus(7):Schema、主字段和自动识别

1 Schema Schema 定义了 Collections 的数据结构。在创建一个 Collection 之前&#xff0c;你需要设计出它的 Schema。本页将帮助你理解 Collections 模式&#xff0c;并自行设计一个示例模式。 在 Zilliz Cloud 上&#xff0c;Collection Schema 是关系数据库中一个表的组合&a…...

Liunx服务上MySQL服务导致CPU炸了,使用kill -9 mysqld进程id后,无法启动MySQL

1.top命令后&#xff0c;可以看到mysqld沾满了cpu 2.然后我使用了kill -9 16594&#xff0c;杀死了mysqld进程 3.之后&#xff0c;查看mysql服务状态&#xff0c;发现对应的 www/serve/mysqld 目录不存在 sudo systemctl status mysqld4.使用命令查看操作 www/serve 目录的历…...

Java使用IText7动态生成带审批文本框的PDF文档

Java使用IText7动态生成带审批文本框的PDF文档 文章目录 Java使用IText7动态生成带审批文本框的PDF文档1.构建第一个框的起始坐标2.渲染第一个框3.渲染其他的审批框 测试结果示例 实现思路 使用Canvas进行相对定位和绝对定位来确定文本框内文字位置&#xff0c;用Rectangle通…...

【音视频】AVIO输入模式

内存IO模式 AVIOContext *avio_alloc_context( unsigned char *buffer, int buffer_size, int write_flag, void *opaque, int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), int64_t (*seek)(…...

Android中的多线程

线程池 在编程中经常会使用线程来异步处理任务&#xff0c;但是每个线程的创建和销毁都需要一定的开销。如果每次执行一个任务都需要开一个新线程去执行&#xff0c;则这些线程的创建和销毁将消耗大量的资源。并且线程都是“各自为政”&#xff0c;很难对其进行控制&#xff0c…...

http://noi.openjudge.cn/——2.5基本算法之搜索——200:Solitaire

文章目录 题目宽搜代码总结 题目 总时间限制: 5000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 Solitaire is a game played on a chessboard 8x8. The rows and columns of the chessboard are numbered from 1 to 8, from the top to the bottom and from left t…...

deep鼠标跟随插件

效果图 实现 首先打开深度系统终端&#xff0c;键入以下安装命令&#xff1a; sudo apt install oneko安装完成后&#xff0c;执行以下命令启动&#xff1a; oneko启动后&#xff0c;就会出现小猫咪&#xff0c;如果终端不关&#xff08;服务不关&#xff09;&#xff0c;会…...

Verilog 语法 (二)

在掌握了 Verilog 的基础语法和常用程序框架之后&#xff0c;本节将带大家深入学习一些 高级设计知识点。这些内容包括&#xff1a; 阻塞赋值&#xff08;&#xff09;与非阻塞赋值&#xff08;<&#xff09;的区别及使用场景&#xff1b; assign 和 always 语句的差异&am…...

大数据开发环境的安装,配置(Hadoop)

1. 三台linux服务器的安装 1. 安装VMware VMware虚拟机软件是一个“虚拟PC”软件&#xff0c;它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比&#xff0c;VMWare采用了完全不同的概念。 我们可以通过VMware来安装我们的linux虚拟机…...

唯创安全:从传统到智能,工厂智能叉车AI防撞系统解决方案

一、叉车安全管理现状痛点分析 1、司机管理难题 • 违规操作频发&#xff1a;无证驾驶、疲劳驾驶(如作业中吸烟/玩手机)及不系安全带现象普遍&#xff0c;事故风险与法律风险双高。 • 资源分配失衡&#xff1a;未经授权使用导致车辆调度混乱&#xff0c;影响作业效率。 2、…...

Windows与CasaOS跨平台文件同步:SyncThing本地部署与同步配置流程

文章目录 前言1. 添加镜像源2. 应用安装测试3. 安装syncthing3.1 更新应用中心3.2 SyncThing安装与配置3.3 Syncthing使用演示 4. 安装内网穿透工具5. 配置公网地址6. 配置固定公网地址 推荐 ​ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽…...

基于Django的个性化股票交易管理系统

本项目基于Python3.6、Django2.1、MySql8.0&#xff08;最好不要使用5.6&#xff0c;字符集等方面均不兼容&#xff0c;否则导入数据库会出错&#xff09;与股票信息工具包TuShare实现。 创建或激活对应Python开发环境 这里使用了conda来管理环境&#xff0c;强烈推荐&#xf…...

Python图像变清晰与锐化,调整对比度,高斯滤波除躁,卷积锐化,中值滤波钝化,神经网络变清晰

本次使用图片来源于百度 import cv2 import time import numpy as np import pywtfrom PIL import Image, ImageEnhance#-i https://pypi.mirrors.ustc.edu.cn/simpledef super_resolution(input_path, output_path, model_path, scale4):# 初始化超分辨率模型sr cv2.dnn_su…...

带根线就无敌?光纤无人机如何成为电子战的终结者

在硝烟弥漫的俄乌战场上&#xff0c;一条超细光缆正在悄然改变战争规则。2024年俄军首次在前线部署光纤FPV无人机&#xff0c;其通过释放光纤线缆传输数据&#xff0c;成功对乌军装甲目标实施精准打击。乌方同时也迅速跟进&#xff0c;于 2025 年初量产光纤FPV 无人机以突破俄军…...

windows 和ubuntu静态路由配置

目录 windows 1 查看当前路由表 2 添加静态路由 3 删除路由 ubuntu route命令&#xff08;传统方式&#xff09; 使用ip指令&#xff08;推荐&#xff09; ubuntu永久路由配置 子网掩码解释 windows 1 查看当前路由表 -4 只关注ipv4&#xff0c;-6 用于指定显示 IPv6 …...

《深入理解计算机系统》阅读笔记之第四章 处理器体系结构

概述 备注&#xff1a;怎么感觉讲的还是《编码》这本书里面提到的知识点&#xff1f;...

vue项目前后端分离设计

在Vue前端架构中&#xff0c;通过分层结构和模块化设计实现高效的前后端分离&#xff0c;需要系统性规划各层职责、接口管理和数据流控制。以下是结合业界最佳实践的完整方案&#xff1a; 一、分层架构设计 1. 分层结构&#xff08;自上而下&#xff09; 层级职责示例技术实现…...

Steam游戏服务器攻防全景解读——如何构建游戏级抗DDoS防御体系?

Steam游戏服务器的DDoS攻防体系设计&#xff0c;从协议层漏洞利用到业务连续性保障&#xff0c;深度拆解反射型攻击、TCP状态耗尽等7类威胁场景。基于全球15个游戏厂商攻防实战数据&#xff0c;提供包含边缘节点调度、AI流量指纹识别、SteamCMD加固配置的三维防护方案&#xff…...

七、web自动化测试03

目录 一、xpath定位1. 属性定位2.属性与逻辑结合3. 属性与层级结合 二、cookie1. 验证码处理方案2. cookie3. 案例&#xff1a;cookie跳过登录 三、pytest1. 介绍及安装2. 定义用例3. 执行测试用例3.1 命令行运行3.2 配置文件运行3.3 项目配置文件config.py 4. 参数化5. 断言6.…...

企业级AI开发利器:Spring AI框架深度解析与实战

企业级AI开发利器&#xff1a;Spring AI框架深度解析与实战 一、前言&#xff1a;Java生态的AI新纪元 在人工智能技术爆发式发展的今天&#xff0c;Java开发者面临着一个新的挑战&#xff1a;如何将大语言模型&#xff08;LLMs&#xff09;和生成式AI&#xff08;GenAI&#…...

docker-compose安装RustDesk远程工具

以下是使用 docker-compose 部署 RustDesk 服务端(ID服务器 hbbs + 中继服务器 hbbr)的完整流程: 1. 创建 docker-compose.yml mkdir -p ~/rustdesk && cd ~/rustdesk vi docker-compose.ymlversion: 3.8services...

Qt基础009(HTTP编程和QJSON)

文章目录 软件开发网络架构BS架构/CS架构 HTTP基本概念QT的HTTP编程JSON数据概述QT生成JSON数据QT解析JSON数据 软件开发网络架构 BS架构/CS架构 ​ 在计算机网络和软件开发中&#xff0c;CS架构&#xff08;Client-Server Architecture&#xff0c;客户端-服务器架构&#x…...

学习整理在centos7上安装mysql8.0版本教程

学习整理在centos7上安装mysql8.0版本教程 查看linux系统版本下载mysql数据库安装环境检查解压mysql安装包创建MySQL需要的目录及授权新增用户组新增组用户配置mysql环境变量编写MySQL配置文件初始化数据库初始化msyql服务启动mysql修改初始化密码配置Linux 系统服务工具,使My…...

第R4周:LSTM-火灾温度预测

文章目录 一、前期准备工作1.导入数据2. 数据集可视化 二、构建数据集1. 数据集预处理2. 设置X, y3. 划分数据集 三、模型训练1. 构建模型2. 定义训练函数3. 定义测试函数4. 正式训练模型 四、模型评估1. Loss图片2. 调用模型进行预测3. R2值评估 总结&#xff1a; &#x1f36…...

Linux文件管理完全指南:从命名规则到压缩解压

一、文件命名规则&#xff1a;避免踩坑的关键 1. 允许的字符与命名建议 允许字符&#xff1a;除 / 外所有字符均可使用&#xff0c;但需避免 <, >, ?, * 等特殊符号。 命名建议&#xff1a; 统一使用小写字母&#xff08;Linux严格区分大小写&#xff09;。 用下划线…...

react和vue的区别之一

前言 小编在学react的时候&#xff0c;发现react在使用ant-design组件的from表单&#xff0c;有点惊奇&#xff0c;跟vue差别确实有点大。 1-React 与 Vue 表单处理对比指南 核心差异概述 特性VueReact (Ant Design Form)数据定义必须显式定义 reactive/ref通过 name 隐式定…...

电力系统最小惯性常数解析

1. 什么是惯性常数&#xff1f; 电力系统的惯性常数&#xff08;Inertia Constant&#xff09;可以理解为系统抵抗频率突变的能力&#xff0c;类似于“惯性”。传统电力系统中&#xff0c;同步发电机&#xff08;如火电厂&#xff09;的旋转部件&#xff08;如涡轮、转子&…...

Linux软硬链接和动静态库(20)

文章目录 前言一、软硬链接基本认知实现原理应用场景取消链接ACM时间 二、动静态库认识库库的作用 三、制作静态库静态库的打包静态库的使用 四、制作动态库动态区的打包动态库的链接与使用动态库的链接原理 总结 前言 我有款非常喜欢玩的游戏&#xff0c;叫做《饥荒》&#xf…...

FX10(CYUSB4014)USB3.2(10Gbps)开发笔记分享(1):硬件设计与开发环境搭建

作者&#xff1a;Hello&#xff0c;Panda 大家早上好&#xff0c;中午好&#xff0c;下午好&#xff0c;晚上好&#xff0c;熊猫君又来了。这次计划做一个连载&#xff0c;大概6期左右&#xff0c;主要介绍英飞凌最新的FX5/10/20的器件应用。目前&#xff0c;熊猫君手上调试的…...

【工具变量】上市公司-“链主“企业相关数据(2001-2024年)

上市公司的"链主企业"&#xff08;Anchor Enterprise&#xff09;指在其供应链中具有较较高中心度的公司。这些公司通过其规模、技术优势、资源整合能力等&#xff0c;影响和带动整个产业链的发展与运作。这些企业往往是供应链中最重要的节点&#xff0c;其决策和行为…...

Qt知识点1『16进制数值与文本互相转换』

工作中可能会遇到QByteArray保存着16进制的数据&#xff0c;例如网络传输中的数据在抓包软件下就会显示为16进制的文本格式。本次是在串口通讯首发消息时遇到的这类转换问题&#xff0c;做一下记录。 一、16进制的文本字符串如何转换数值 解决&#xff1a;形如QString("0…...

MongoDB Shard Cluster

# MongoDB Shard Cluster 集群规划 132上面单独安装mongos 在 1,2,3上面安装shard1和config 在 4,5,6上面安装shard2 节点host如下 172.20.192.20 member1.blockin.ai 172.20.192.21 member2.blockin.ai 172.20.192.31 member3.blockin.ai …...

Pycharm(六):可变与不可变类型

一、引用 在java中既有值传递,也有引用传递,我们思考一下在python中值的传递方式是哪种类型呢? 答案是引用传递。 概述: Python中存储变量是需要占用内存空间的,为了更好地管理这些空间,每块空间都是有自己的地址值的。 格式: id(变量名/值) 可以查看变量/…...

每日算法-250425

每日算法打卡 - 2025年4月25日 记录今天完成的几道 LeetCode 算法题&#xff0c;分享解题思路和代码。 2178. 拆分成最多数目的正偶数之和 题目 解题思路 贪心算法 解题过程 题目要求我们将一个偶数 finalSum 拆分成尽可能多的 不同 正偶数之和。 为了使拆分出的数字数量…...

github把自己的jar包发送到maven中央仓库

maven中央仓库注册账号 《Maven中央仓库官网》 注册账号 直接使用github账号 他会自动帮我们创建一个github的命名空间 获取自己的User Token 切记立马复制、保存username和password&#xff0c;后面maven的settings.xml会用到&#xff0c;因为这个页面会在一分钟以后自动关闭…...

链表系列一>两两交换链表中的结点

目录 题目&#xff1a;解析&#xff1a;代码&#xff1a; 题目&#xff1a; 链接: link 解析&#xff1a; 代码&#xff1a; /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int va…...

【深度强化学习 DRL 快速实践】异步优势演员评论员算法 (A3C)

Asynchronous Advantage Actor-Critic A3C (2016, DeepMind) 异步优势演员评论员算法 (A3C): 继承 actor-critic 的优势&#xff0c;同时通过异步多线程 (团队作战) 加速了训练过程 model-free, actor-critic 核心改进点说明异步并行训练 – Asynchronous (无经验回放)通过多个…...

240425 leetcode exercises

240425 leetcode exercises jarringslee 文章目录 240425 leetcode exercises[147. 对链表进行插入排序](https://leetcode.cn/problems/insertion-sort-list/)&#x1f501;插入排序 [1721. 交换链表中的节点](https://leetcode.cn/problems/swapping-nodes-in-a-linked-list…...