MySQL学习记录 —— 이십이 MySQL服务器日志
文章目录
- 1、日志介绍
- 2、一般、慢查询日志
- 1、一般查询日志
- 2、慢查询日志
- FILE格式
- TABLE格式
- 3、错误日志
- 4、二进制日志
- 5、日志维护
1、日志介绍

中继服务器的数据来源于集群中的主服务。每次做一些操作时,把操作保存到重做日志,这样崩溃时就可以从重做日志把之前的操作拿回来。
• 默认情况下,除 Windows 上的错误日志外,不启用任何日志,Linux下默认开启错误日志和二进制日志
• 在服务器运行期间可以控制一般查询和慢查询日志的禁用与开启,也可以更改日志文件名
• 一般查询日志和慢查询日志记录可以写入日志表、日志文件或两者同时写入
• 默认情况下,所有启用的日志将写人数据目录,可以通过刷新日志强制服务器关闭并重新打开日志文件
• 通过 FLUSH LOGS 语句刷新日志来强制服务器关闭并重新打开日志文件,也可以使用mysqladmin 的 flush-logs 或 refresh 参数,或mysqldump 的 --flush-logs 或 --master-data 选项
• 中继日志仅用于主从复制过程中的从服务器。
2、一般、慢查询日志
如果启用一般查询日志和慢查询日志,日志的输出方式可以指定为日志文件或 mysql 系统库中的 general_log 和 slow_log 表,也可以两者同时指定。log_output 系统变量指定日志输出的形式,但并不会真正的启用日志。 log_output 有三个值,分别是: TABLE (表)、 FILE (文件)、 NONE (不输出),可以同时指定多个值,并用逗
号隔开,未指定值时默认是 FILE ,如果列表中存在 NONE 则其他的不生效,即 NONE 的优先级最高。
通过设置 general_log 系统变量的值来控制一般查询日志的 开启 1 与 禁用 0 ,如果要为日志指定自定义的路径或文件名可以使用 general_log_file 系统变量。
通过设置 slow_query_log 系统变量的值来控制慢查询日志的 开启 1 与 禁用 0 ,如果要为日志指定自定义的路径或文件名可以使用 slow_query_log_file 系统变量。
两个log_file系统变量都需要绝对路径。
以选项文件中的配置为例:
[mysqld]
#日志写入表和文件
log_output=TABLE,FILE
#两个日志可以同时开, 可以只开一个
#开启一般查询日志
general_log=1
#指定自定义的文件名
general_log_file=/var/lib/mysql/general.log
#开启慢查询日志
slow_query_log=1
#指定自定义的文件名
slow_query_log_file=/var/lib/mysql/slow_query.log
如果没用_log_file系统变量来指定路径,那么默认路径在启动mysql后查看
show variables like 'general_log_file';
show variables like 'slow_query_log_file';
运行时修改:
SET [GLOBAL|SESSION] variable_name=value
可以修改日志的输出形式,输出到的文件。若只对当前会话禁用或启用一般查询日志记录,将 SESSION作用域的 sql_log_off 变量设置为 ON 或 OFF。
日志文件在mysql中就是一个表,可以通过 SQL 语句的条件查询过滤日志内容,,从而选择满足特定条件的日志记录。比如,某个客户端的日志;客户端程序连接到服务器就能用SQL语句查询表中的日志信息,这属于应用程序级别,无需用一个有相应权限的系统用户来登录服务器主机访问文件系统。
1、一般查询日志
一般查询日志记录客户端连接或断开连接的信息,也会记录从客户端接收的每个SQL语句。不过它很耗费服务器资源,所以默认为不开启。
默认日志文件名位host_name.log,用 general_log_file=file_name 修改。
记当客户端连接的日志行,使用 connection_type 来指示用于建立连接的协议。 TCP/IP 表示不使用SSL建立的TCP/IP连接、 SSL/TLS 表示使用SSL建立的TCP/IP连接、 Socket 表示Unix套接字文件连接、Named Pipe 表示Windows命名管道连接、 Shared Memory 表示Windows共享内存连接。
Mysqld按照接收到SQL语句的顺序将语句写入查询日志,这个顺序可能与语句执行的顺序不同。
SQL语句查询日志
select * from mysql.general_log\G
查询到的内容有一些就看不出来什么意思,用CAST()来转换一下。
SELECT DATE_FORMAT(event_time, '%Y-%m-%d %H:%i:%s') AS time, user_host, thread_id, server_id, command_type, CAST(argument AS CHAR) AS query
FROM mysql.general_log;
像这样,在查询DATE_FORMAT表时,把argument转换成char类型的。而select后的as和cast后的as都是重命名的意思。
除此之外,不启动mysql的情况下,查询Linux目录下的日志文件也行,通常在/var/lib/mysql下。
2、慢查询日志
慢查询日志由执行时间超过系统变量 long_query_time 指定的秒数的 SQL 语句组成,并且查询的行数要大于系统变量 min_examined_row_limit 指定值。被记录的慢查询需要进行优化,可以用 mysqldumpslow客户端程序对慢日志进行分析汇总。
获取初始锁的时间不计入执行时间,mysqld在执行完SQL语句并释放所有锁后才将符合条件的语句写入慢速查询日志,因此日志顺序可能与执行顺序不同。也就是说慢查询记录的时间是执行SQL语句并返回结果,释放锁的时间。

使用 --log-short-format 选项,以简要格式记录慢查询日志。
要记录管理语句,启用 log_slow_admin_statements 系统变量。管理语句包括 ALTER、TABLE 、 ANALYZE TABLE 、 CHECK TABLE 、 CREATE INDEX 、 DROP INDEX 、OPTIMIZE TABLE 和 REPAIR TABLE 。
要记录不使用索引的查询,启用 log_queries_not_using_indexes 系统变量。当记录不使用索引的查询时,日志会快速增长,通过设置系统变量log_throttle_queries_not_using_indexes 限制每分钟写入慢查询日志同类查询的数量,默认值是0,表示无限制。
通常设置启用或不启用就是1和0,或者ON和OFF,具体查看官方文档 MySQL 8.4。
修改可以在配置文件修改,也可以在mysql运行时修改,运行时修改就是:
SET [GLOBAL|SESSION] variable_name=value
当然全局还是会话也要看官方文档,变量有3种类型,全局,会话,全局及会话。
FILE格式
如果启用慢查询日志并将 FILE 作为输出目标,每条语句前面都用一行来表示日志的字段,该行以 # 字符开头并包含以下内容:
Query_time: SQL语句的执行时间,单位秒
Lock_time:获取锁的时间,单位秒
Rows_sent:发送到客户端的行数
Rows_examined:服务器扫描数据表中具体数据行的数量
就像这样

启用–log-slow-extra[={OFF|ON}]系统变量会让更多字段写入到FILE中,之后的博客再详细写。
TABLE格式
慢查询日志表的表结构:
SHOW CREATE TABLE mysql.slow_log;

query_time是查询总耗时,lock_time是争抢mysql级别的锁的时间,rows_sent是返回结果集中数据行的数量,rows_examined是服务器扫描数据表中具体数据行的数量,db是数据库名,两个insert是关于插入的记录,server_id是选项文件中配置的server-id,sql_text是具体执行的SQL语句。
建议使用日志文件的形式来记录慢查询日志。
3、错误日志
错误日志一般会记录mysqld 启动和关闭的次数、诊断消息,以及服务器运行期间发生的错误和警告;错误日志默认使用UTF-8 ( utf8mb3 )编码格式,并使用英语生成记录。
错误日志的输出位置是控制台或者指定文件。配置文件中mysqld部分用 --log-error 选项来指定默认错误日志目标,可以指定控制台或文件。
如果错误日志输出目标是控制台,则服务器将 log_error 系统变量设置为 stderr。否则,将以文件形式输入错误日志,并以 log_error 的值为文件名。
如果显式写出 --log-error 但没有指定具体文件,则默认路径是数据目录中host_name.err 的文件;可以通过指定绝对路径,来更改默认的日志位置
[mysqld]
log-error=/var/log/mysql/error_log.err # 自定义错误日志的路径
字段
time :件时间戳,精度为微秒;
msg :事件消息字符串;
prio :事件优先级,包括 System event(System是数据库系统)(0)、 Error event(必须处理)(1)、 Warning event(定期查看是否影响系统运行)(2)或 Note/information event - 通知 / 提示事件(3),值越小优先级越高;
err_code :事件错误代码;
err_symbol :以字符串形式表示的事件错误符,例如 ‘ER_DUP_KEY’ ;
SQL_state :事件 SQLSTATE 值,与 err_symbol 对应,例如 ‘ER_DUP_KEY’ 对应的SQLSTATE为23000;
上面三个是MySQL内部维护的一套错误代码的定义
subsystem :事件发生的子系统。可能的值: InnoDB (InnoDB存储引擎)、 Repl (复制子系统)、 Server (其他)。
可选的错误日志字段:
OS_errno :操作系统错误号;
OS_errmsg :操作系统错误消息;
label :与值对应的 prio 描述 ;
user :客户端用户;
host :客户端主机;
thread :产生错误事件 的线程的 ID;
query_id :查询 ID。
错误日志示例:

每一行从左到右分别是时间,优先级,错误码,子系统,日志详情。
错误码的说明参考官方文档
Error Summary Tables
Global Error Message Reference
当mysqld程序在运行时发生的错误会写到文件中,还有一些情况发生在客户端执行错误的SQL语句时,会出现提示,但不会写入文件:访问了不存在的库和表、语句错误、权限问题。
如果使用FLUSH ERROR LOGS 、 FLUSH LOGS 语句或 mysqladmin flush-logs 命令刷新错误日志,服务器会将正在写入的任何错误日志文件关闭并重新打开。
如果要手动重命名错误日志文件,可以在重命名操作之后执行刷新操作,服务器会以原文件名生成一个新的错误日志文件。
mv host_name.err host_name.err-old # 重命名日志文件
mysqladmin flush-logs # 刷新操作
mv host_name.err-old backup-directory # 把重命名的日志文件移动到备份目录
4、二进制日志
数据库的读写操作全都在一个服务器上,当数据量增大时,单台服务器性能就会出现瓶颈 。一个很有效的解决办法就是形成一个服务器集群,可以让每个服务器降低一点配置,但一定要有足够数量的节点。集群中有一个主服务器,其它为从服务器,让每个服务器都只执行一种操作;可以让主服务器进行数据写入,从服务器负责查询等操作;但服务器之间也要同步数据,这时候就需要有二进制日志,每个服务器所有的操作都生成二进制日志,主服务器的二进制日志的副本放在一个中继服务器上,也就是复制品,从服务器从中继服务器那里读取中继日志,也就是主服的二进制日志的副本,然后再进行各种操作,执行中继日志中的所有修改记录。
⼆进制日志包含数据库更改的"事件",不会记录 SELECT 和 SHOW;二进制日志还包含每个语句更新数据时花费的时间信息,启动二进制日志,对服务器性能稍微有些影响;除了基于行的日志模式,它还包含可能进行更改数据的语句事件,例如 DELETE 操作没有匹配到查找到的行。
二进制日志的作用:
主从节点数据复制:从节点服务器读取主节点服务器上的二进制日志文件,并根据二进制日志中记录的事件在从节点上执行相同的操作,保证主从节点服务器上数据一致,实现数据复制功能。
数据恢复:从某个时间点恢复备份数据后,将重新执行备份时间点之后记录在二进制日志中的事件。这些事件使数据库从备份点更新到当前最新状态。
⼆进制日志的语句中如果涉及用户的密码,则由服务器进行加密,不会以纯文本形式出现。
查看二进制日志相关的系统变量:
show variables like '%bin%';
状态变量就是把variables换成status。
默认情况下启用二进制日志, log_bin 系统变量为 ON ;
禁用二进制日志,可以指定 --skip-log-bin 或 --disable-log-bin 选项。如果同时指定了 --log-bin 则后指定的选项优先;
选项 --log-bin[=base_name] 用于指定二进制日志文件的基本名称,如果不指定 --log-bin 选项,默认基本名称为 binlog ,建议为二进制日志指定⼀个基本名;
二进制日志文件名是由基本名 + 数字扩展名组成的,服务器每次创建⼀个新的日志文件时,数字扩展名都会增加,从而保证有序的文件系列。当服务器已启动或重新启动、服务器刷新日志、当前日志文件的大小达到max_binlog_size(单个日志文件的最大字节数,最小值 4096 字节,最大值和默认值 1GB)时服务器会创建一个新的日志文件。二进制日志文件大小可能会超出 max_binlog_size 设定的值,因为二进制日志在记录事务
时,会完整的记录整个事务,不存在把一个事务拆分的情况,如果遇到一个大事务时,即使记录整个事务会超过日志大小限制,也会保证事务的完整性;
mysqld还会创建一个包含二进制日志文件名的日志索引文件,默认情况下,这与二进制日志文件具有相同的基本名称,扩展名为 .index . 可以使用选项 --log-bin-index[=file_name]修改索引文件名;
二进制日志文件和索引文件的默认位置是数据目录。可以使用 --log-bin[=file_name] 选项指定自定义路径, file_name 格式 = 绝对路径 + 基本名。 --log-bin 对应的系统变量是log_bin_basename ;
要区分官方文档的这四个变量:

MySQL 8.4
MySQL 5.7 中,启用二进制日志必须指定服务器 ID,对应 server_id 选项,否则服务器将无法启动。在MySQL 8.0 中, server_id 系统变量默认设置为 1,在集群环境中,每台MySQL服务器必须有唯一的 server_id。
可以用客户端工具mysqlbinlog来查看二进制日志
mysqlbinlog binlog.000001 > binlog.000001
前面是二进制日志名,后面是导出的日志文件名,不过导出的是加密的。
SQL语句查看
show binlog events in 'binlog.000001' from N limit S;
在mysql查到的内容中,Pos表示当前这条日志在文件中的起始偏移量;Event_type是查询日志事件类型;End_log_pos是当前日志在文件中的结束偏移量;Info后面是具体执行的操作。
二进制日志有几种日志格式:
基于语句的日志格式,最初MySQL 是基于 SQL 语句复制实现主从节点同步,通过指定选项 --binlog-format=STATEMENT 使用此格式 。执行了什么语句就完整地写进去。
基于行的日志格式(默认)中,主节点将事件写入二进制日志,表示各个表的行受到的影响,可以通过指定选项 --binlog-format=ROW 使用此格式 。像下面的:
update student set age = 18 where id = 10;
update student set age = 18 where id = 11;
update student set age = 18 where id = 12;
...
update student set age = 18 where id = 19;
update student set age = 18 where id = 20;
当使用MySQL内部的一些函数时,必须以行的格式记录日志。
混合日志记录格式,默认情况下使用基于语句的日志记录,如果MySQL认为基于语句的格式不能保证主从复制过程中的数据安全时,会自动切换到基于行的日志格式,比如主节点在语句中用了UUID() 函数,那么日志文件中记录的是UUID生成的真实值而不是直接使用原始的SQL语句,使用混合日志格式中以指定选项 --binlog-format=MIXED。
设置二进制格式:
--binlog-format=[STATEMENT|ROW|MIXED]
5、日志维护
MySQL 服务器可以创建多种不同日志文件来帮助我们查看服务器的活动。但是必须定期清理这些文件,以免日志占用过多的磁盘空间。在启用日志的情况下,通常希望备份和删除旧的日志文件,并把日志写到新文件。
默认二进制日志的过期时间为30天,过期后将自动删除,要指定自定义过期时间,可以使用系统变量 binlog_expire_logs_seconds=N 单位为秒,在下一次启动服务器和刷新日志时删除过期日志文件。
强制使用新的日志文件可以手动刷新日志,当执行 FLUSH LOGS 语句或 mysqladmin flush-logs、mysqladmin refresh 、mysqldump --flush-logs、 mysqldump --master-data 命令时,会发生日志刷新。此外当二进制日志文件大小达到max_binlog_size 系统变量指定的值时,服务器会自动刷新二进制日志。
FLUSH BINARY LOGS # 刷新二进制日志
FLUSH ERROR LOGS # 刷新错误日志
FLUSH GENERAL LOGS # 刷新一般查询日志
FLUSH RELAY LOGS # 刷新中继日志
FLUSH SLOW LOGS # 刷新慢查询日志
刷新一般查询日志、慢查询日志或错误日志只是关闭并重新打开日志文件,如果要备份可以先重命名再执行刷新操作,一般查询日志、慢查询日志或错误日志文件名分别为:mysql.log 、mysql-slow.log 和 err.log。
要在运行时重命名一般、慢查询日志,要先禁用日志
SET GLOBAL general_log = 'OFF';
SET GLOBAL slow_query_log = 'OFF';
然后在bash命令行中去mv重命名,最后恢复日志
SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';
这种方法各平台通用且不需要重启mysql服务器。
结束。
相关文章:
MySQL学习记录 —— 이십이 MySQL服务器日志
文章目录 1、日志介绍2、一般、慢查询日志1、一般查询日志2、慢查询日志FILE格式TABLE格式 3、错误日志4、二进制日志5、日志维护 1、日志介绍 中继服务器的数据来源于集群中的主服务。每次做一些操作时,把操作保存到重做日志,这样崩溃时就可以从重做日志…...
HTTPS请求头缺少HttpOnly和Secure属性解决方案
问题描述: 建立Filter拦截器类 package com.ruoyi.framework.security.filter;import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.…...
react基础样式控制
行内样式 <div style{{width:500px, height:300px,background:#ccc,margin:200px auto}}>文本</div> class类名 注意:在react中使用class类名必须使用className 在外部src下新建index.css文件写入你的样式 .fontcolor{color:red } 在用到的页面引入…...
【区块链 + 智慧政务】涉税行政事业性收费“e 链通”项目 | FISCO BCOS应用案例
国内很多城市目前划转至税务部门征收的非税收入项目已达 17 项,其征管方式为行政主管部门核定后交由税务 部门征收。涉税行政事业性收费受限于传统的管理模式,缴费人、业务主管部门、税务部门、财政部门四方处于 相对孤立的状态,信息的传递靠…...
Socket、WebSocket 和 MQTT 的区别
Socket 协议 定义:操作系统提供的网络通信接口,抽象了TCP/IP协议,支持TCP和UDP。特点: 通用性:不限于Web应用,适用于各种网络通信。协议级别:直接使用TCP/UDP,需要手动管理连接和数…...
企业网络实验(vmware虚拟机充当DHCP服务器)所有IP全部保留,只为已知mac分配固定IP
文章目录 需求实验修改dhcp虚拟机配置文件测试PC获取IP查看user-bind 需求 (vmware虚拟机充当DHCP服务器)所有IP全部保留,只为已知mac分配固定IP 实验 前期配置: https://blog.csdn.net/xzzteach/article/details/140406092 后续配置均在以上配置的前…...
HouseCrafter:平面草稿至3D室内场景的革新之旅
在室内设计、房地产展示和影视布景设计等领域,将平面草稿图快速转换为立体的3D场景一直是一个迫切的需求。HouseCrafter,一个创新的AI室内设计方案,正致力于解决这一挑战。本文将探索HouseCrafter如何将这一过程自动化并提升至新的高度。 一、定位:AI室内设计的革新者 Ho…...
C#统一委托Func与Action
C#在System命名空间下提供两个委托Action和Func,这两个委托最多提供16个参数,基本上可以满足所有自定义事件所需的委托类型。几乎所有的 事件 都可以使用这两个内置的委托Action和Func进行处理。 Action委托: Action定义提供0~16个参数&…...
MongoDB 基本查询语句
基本查询 查询所有文档: db.collection.find()示例: db.users.find()按条件查询文档: db.collection.find({ key: value })示例: db.users.find({ age: 25 })查询并格式化输出: db.collection.find().pretty()示例&…...
28_EfficientNetV2网络详解
V1:https://blog.csdn.net/qq_51605551/article/details/140487051?spm1001.2014.3001.5502 1.1 简介 EfficientNetV2是Google研究人员Mingxing Tan和Quoc V. Le等人在2021年提出的一种深度学习模型,它是EfficientNet系列的最新迭代,旨在提…...
PyCharm查看文件或代码变更记录
背景: Mac笔记本上有一个截图的定时任务在运行,本地Python使用的是PyCharm IDE,负责的同事休假,然后定时任务运行的结果不符合预期,一下子不知道问题出现在哪里。 定位思路: 1、先确认网络、账号等基本的…...
Java开发手册中-避免Random实例被多线程使用、多线程下Random与ThreadLoacalRandom性能对比
场景 Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化: Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化_java热点函数-CSDN博客 参考以上性能测试工具的使用。 Java开发手册中有这样一条…...
【Arduino IDE】安装及开发环境、ESP32库
一、Arduino IDE下载 二、Arduino IDE安装 三、ESP32库 四、Arduino-ESP32库配置 五、新建ESP32-S3N15R8工程文件 乐鑫官网 Arduino官方下载地址 Arduino官方社区 Arduino中文社区 一、Arduino IDE下载 ESP-IDF、MicroPython和Arduino是三种不同的开发框架,各自适…...
【C++开源】GuiLite:超轻量UI框架-入门
开发环境说明 使用visual Studio 2022进行开发 下载源码 从如下的网址进行源码和示例代码的下载: GitHub源码网址为:idea4good/GuiLite示例代码路径为:idea4good/GuiLiteExample使用方法 GuiLite是一个仅有头文件的一个库,使用的时候直接include到自己的UIcode.cpp文件…...
SQL面试题练习 —— 查询每个用户最大连续登录天数
目录 1 题目2 建表语句3 题解 1 题目 查询每个用户最大连续登录天数 样例数据如下 login_log: 2 建表语句 --建表语句 create table if not exists login_log (user_id int comment 用户id,login_time date comment 登录时间 ); --数据插入 INSERT overwrit…...
服务器系统盘存储不够,添加数据盘并挂载(阿里云)
目录 1.获取数据盘设备名称 2.为数据盘创建分区 3.为分区创建文件系统 4.配置开机自动挂载分区 阿里云数据盘挂载说明链接:在Linux系统中初始化小于等于2 TiB的数据盘_云服务器 ECS(ECS)-阿里云帮助中心 1.获取数据盘设备名称 sudo fdisk -lu 运行结果如下所示…...
Visual Studio2022中使用.Net 8 在 Windows 下使用 Worker Service 创建守护进程
Visual Studio2022中使用.Net 8 在 Windows 下创建 Worker Service 1 什么是 .NET Core Worker Service1.1 确认Visual Studio中安装了 ASP.NET和Web开发2 创建 WorkerService项目2.1 新建一个WorkerService项目2.2 项目结构说明3 将应用转换成 Windows 服务3.1 安装Microsoft.…...
HTML5应用的安全防护策略与实践
随着HTML5及其相关技术(如CSS3和JavaScript)的普及,Web应用变得越来越强大和复杂,同时也成为黑客攻击的目标。本文将探讨HTML5应用面临的常见安全威胁,以及如何通过最佳实践和代码示例来增强应用的安全性。 HTML5安全…...
堆叠和集群
堆叠和集群 堆叠/集群:把多条/两台设备通过线缆进行连接,逻辑上组成一台设备,作为应该整体来管 理和转发流量 堆叠和集群的区别 1. 何时设备支持对贴,框式设备支持集群 2. 堆叠可以支持多台,框式只能支持两台 堆…...
【5G Sub-6GHz模块】专为IoT/eMBB应用而设计的RG520NNA、RG520FEB、RG530FNA、RG500LEU 5G模组
推出全新的5G系列模组: RG520NNADB-M28-SGASA RG520NNADA-M20-SGASA RG520FEBDE-M28-TA0AA RG530FNAEA-M28-SGASA RG530FNAEA-M28-TA0AA RG500LEUAA-M28-TA0AA ——明佳达 1、5G RG520N 系列——专为IoT/eMBB应用而设计的LGA封装模块 RG520N 系列是一款专为 IoT…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
