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

解密MySQL二进制日志:深度探究mysqlbinlog工具

欢迎来到我的博客,代码的世界里,每一行都是一个故事


在这里插入图片描述

🎏:你只管努力,剩下的交给时间

🏠 :小破站

解密MySQL二进制日志:深度探究mysqlbinlog工具

    • 前言
    • mysqlbinlog工具概述
    • mysqlbinlog的基本用法
      • 基本用法介绍
        • 命令行选项:
        • 参数:
      • 示例:
        • 基本命令:
        • 指定主机、端口、用户名、密码:
        • 指定解析的起始日期时间:
        • 指定输出文件:
        • 过滤特定数据库和表:
    • 解析二进制日志文件
      • 步骤一:获取二进制日志文件
      • 步骤二:解析二进制日志文件
      • 步骤三:执行 SQL 语句
      • 注意事项:
    • 过滤和筛选日志内容
      • 过滤特定时间范围内的日志事件:
        • 指定起始日期时间:
        • 指定结束日期时间:
        • 指定起始和结束的日志位置:
      • 过滤特定数据库、表或操作类型的日志事件:
        • 指定特定数据库:
        • 指定特定表:
        • 指定特定操作类型:
    • 恢复数据和数据库复制
      • 1. 利用mysqlbinlog从二进制日志中恢复误删除的数据:
      • 2. 使用mysqlbinlog实现MySQL数据库的主从复制:
    • mysqlbinlog的高级用法
      • 解析MySQL GTID格式的二进制日志:
      • 解析压缩格式的二进制日志文件:
    • 应用场景与案例分析
      • 实例分析:使用mysqlbinlog还原数据库误操作的案例
      • 实例分析:利用mysqlbinlog监控数据库主从同步延迟的案例

前言

在MySQL的世界里,二进制日志(binary log)扮演着至关重要的角色,它记录了数据库中的每一个变更操作,如何解析这些日志成为了数据库管理员和开发人员必备的技能之一。而mysqlbinlog工具则是解析二进制日志的关键利器,就像一把打开数据库历史记录的钥匙。接下来,我们将揭开mysqlbinlog的神秘面纱,一探究竟。

mysqlbinlog工具概述

mysqlbinlog 是 MySQL 官方提供的一个命令行工具,用于解析二进制日志文件。这些二进制日志文件记录了 MySQL 数据库中发生的各种更改操作,比如插入、更新、删除等。通过使用 mysqlbinlog 工具,可以将这些二进制日志文件中的内容以文本形式展示出来,使其更易于人类阅读和理解。

基本上,mysqlbinlog 的主要功能包括:

  • 解析二进制日志文件,将其中的操作转换成文本形式的 SQL 语句。
  • 提供了一系列的选项,可以对输出进行过滤、格式化和控制。
  • 支持从本地文件或者远程 MySQL 服务器获取二进制日志数据。

通过这个工具,数据库管理员和开发人员可以更好地理解数据库中的操作历史,进行故障排查、备份和恢复操作等。

mysqlbinlog的基本用法

基本用法介绍

mysqlbinlog 命令行工具有多个选项和参数,用于解析和处理二进制日志文件。以下是一些常用选项和参数的介绍:

命令行选项:
  • -h--host: 指定连接的 MySQL 主机。
  • -P--port: 指定 MySQL 服务器的端口号。
  • -u--user: 指定连接 MySQL 服务器的用户名。
  • -p--password: 提示用户输入连接 MySQL 服务器的密码。
  • --base64-output=[DECODED | ENCODED]: 控制输出是否以 Base64 编码格式。
  • --start-datetime: 指定开始解析的日期时间。
  • --stop-datetime: 指定结束解析的日期时间。
  • --start-position: 指定开始解析的日志位置。
  • --stop-position: 指定结束解析的日志位置。
  • --database: 指定要解析的数据库名。
  • --table: 指定要解析的表名。
  • --result-file: 将输出写入指定的文件。
  • --verbose: 显示详细的解析过程信息。
  • --skip-gtids: 跳过 GTID (Global Transaction ID) 信息的解析。
参数:
  • binlog-file: 指定要解析的二进制日志文件名。
  • ...: 其他参数,如数据库名、表名等,用于过滤解析的内容。

示例:

基本命令:
mysqlbinlog binlog-file
指定主机、端口、用户名、密码:
mysqlbinlog -h hostname -P port -u username -ppassword binlog-file
指定解析的起始日期时间:
mysqlbinlog --start-datetime="2024-01-01 00:00:00" binlog-file
指定输出文件:
mysqlbinlog binlog-file > output.sql
过滤特定数据库和表:
mysqlbinlog --database=mydb --table=mytable binlog-file

这些示例可以帮助你开始使用 mysqlbinlog 工具,解析二进制日志文件并按需进行操作和分析。

解析二进制日志文件

当使用 mysqlbinlog 解析二进制日志文件时,可以将二进制日志中的操作还原成 SQL 语句,从而还原数据库的变更操作。以下是演示如何从二进制日志文件中还原数据库的变更操作的步骤:

步骤一:获取二进制日志文件

首先,需要获取要解析的二进制日志文件。这些文件通常位于 MySQL 服务器的日志目录中,文件名类似于 mysql-bin.000001

步骤二:解析二进制日志文件

使用 mysqlbinlog 命令解析二进制日志文件,并输出为文本格式的 SQL 语句。可以使用以下命令:

mysqlbinlog binlog-file > output.sql

这将解析指定的二进制日志文件 binlog-file,并将解析结果输出到 output.sql 文件中。

步骤三:执行 SQL 语句

将生成的 SQL 文件导入到 MySQL 数据库中,以执行其中包含的变更操作。可以使用 MySQL 客户端工具(如 mysql 命令行工具或 MySQL Workbench)来执行 SQL 文件中的语句,从而还原数据库的变更操作。

mysql -u username -p password database_name < output.sql

这将连接到 MySQL 数据库,执行 output.sql 文件中包含的 SQL 语句,从而将数据库还原到相应的状态。

注意事项:

  • 在执行 SQL 文件之前,请确保已经备份了数据库,以防意外发生。
  • 在执行 SQL 文件时,可能会出现一些错误或警告。务必仔细检查执行结果,确保数据库还原操作正确执行。

通过这些步骤,你可以使用 mysqlbinlog 工具从二进制日志文件中还原数据库的变更操作。

过滤和筛选日志内容

使用 mysqlbinlog 工具可以通过一系列选项来过滤和筛选特定时间范围内的日志事件,以及特定数据库、表或操作类型的日志事件。以下是一些常用的过滤选项示例:

过滤特定时间范围内的日志事件:

指定起始日期时间:
mysqlbinlog --start-datetime="YYYY-MM-DD HH:MM:SS" binlog-file
指定结束日期时间:
mysqlbinlog --stop-datetime="YYYY-MM-DD HH:MM:SS" binlog-file
指定起始和结束的日志位置:
mysqlbinlog --start-position=position --stop-position=position binlog-file

过滤特定数据库、表或操作类型的日志事件:

指定特定数据库:
mysqlbinlog --database=dbname binlog-file
指定特定表:
mysqlbinlog --database=dbname --table=tablename binlog-file
指定特定操作类型:
  • 插入操作:
mysqlbinlog --database=dbname --table=tablename --include-insert binlog-file
  • 更新操作:
mysqlbinlog --database=dbname --table=tablename --include-update binlog-file
  • 删除操作:
mysqlbinlog --database=dbname --table=tablename --include-delete binlog-file

通过结合这些选项,可以根据需要精确地过滤和筛选二进制日志中的事件,以便更好地分析和理解数据库的变更历史。

恢复数据和数据库复制

1. 利用mysqlbinlog从二进制日志中恢复误删除的数据:

步骤如下:

  1. 停止数据库服务: 首先,停止 MySQL 数据库服务,以免在恢复过程中有新的数据变更。

  2. 找到相关的二进制日志文件: 确定包含了被删除数据的二进制日志文件。

  3. 使用mysqlbinlog解析日志文件: 运行 mysqlbinlog 命令解析指定的二进制日志文件,并将结果输出到一个文本文件中,例如:

    mysqlbinlog binlog-file > recovered_data.sql
    
  4. 在生成的 SQL 文件中找到被删除的数据操作: 在生成的 recovered_data.sql 文件中搜索并找到被删除数据的 SQL 操作,可能是 DELETE 语句。

  5. 执行恢复操作: 将找到的被删除数据的 SQL 操作复制到一个新的 SQL 文件中,并执行该文件以恢复被删除的数据。

  6. 重新启动数据库服务: 在数据恢复完成后,重新启动 MySQL 数据库服务。

2. 使用mysqlbinlog实现MySQL数据库的主从复制:

MySQL 的主从复制是一种常用的数据库复制技术,可以将一个 MySQL 主数据库的数据复制到一个或多个从数据库中。下面是基本的步骤:

  1. 配置主服务器: 在主服务器上启用二进制日志记录,并配置用于从服务器连接的用户名和权限。

  2. 配置从服务器: 在从服务器上配置用于复制的用户名和密码,并确保可以连接到主服务器。

  3. 启动主从复制: 在从服务器上使用 CHANGE MASTER TO 命令,指定主服务器的位置(主机名、端口、日志文件名和位置),然后启动复制过程。

  4. 验证复制状态: 使用 SHOW SLAVE STATUS\G 命令检查从服务器的复制状态,确保复制过程正常运行。

  5. 监控和维护: 定期监控主从服务器的复制状态,并根据需要进行维护和调整。

通过以上步骤,你可以使用 mysqlbinlog 实现 MySQL 数据库的主从复制,从而实现数据的自动同步和备份。

mysqlbinlog的高级用法

MySQL GTID(Global Transaction ID)是用于在分布式环境下唯一标识事务的一种机制。mysqlbinlog 工具支持解析包含 GTID 格式的二进制日志文件,以及解析压缩格式的二进制日志文件。下面是关于这两种高级用法的说明:

解析MySQL GTID格式的二进制日志:

MySQL GTID 格式的二进制日志文件包含了 GTID 信息,可以通过 mysqlbinlog 工具进行解析。使用 --read-from-remote-server 选项可以从远程服务器读取二进制日志,并解析其中的 GTID 信息。示例命令如下:

mysqlbinlog --read-from-remote-server --base64-output=decode-rows mysql-binlog-file

其中,mysql-binlog-file 是要解析的二进制日志文件名。

解析压缩格式的二进制日志文件:

MySQL 支持将二进制日志文件进行压缩,以减少磁盘空间的使用。mysqlbinlog 工具可以直接解析压缩格式的二进制日志文件。示例命令如下:

mysqlbinlog --verbose --base64-output=decode-rows --read-from-remote-server --raw --result-file=result.txt <(gzip -dc mysql-binlog-file.gz)

其中,mysql-binlog-file.gz 是压缩格式的二进制日志文件名。

通过以上方法,可以利用 mysqlbinlog 工具解析包含 GTID 格式的二进制日志文件,以及解析压缩格式的二进制日志文件。

应用场景与案例分析

实例分析:使用mysqlbinlog还原数据库误操作的案例

假设某个数据库管理员在执行数据库操作时误删除了一张重要的表,导致数据丢失。下面是使用 mysqlbinlog 工具还原这个误操作的步骤:

  1. 停止数据库服务: 首先,停止 MySQL 数据库服务,以避免在还原过程中有新的数据变更。

  2. 查找相关的二进制日志文件: 确定包含了被删除数据的二进制日志文件,找到误操作发生的时间点。

  3. 使用mysqlbinlog解析日志文件: 运行 mysqlbinlog 命令解析指定的二进制日志文件,并将结果输出到一个文本文件中:

    mysqlbinlog binlog-file > recovery_commands.sql
    
  4. 在生成的 SQL 文件中找到误删除数据的操作: 在生成的 recovery_commands.sql 文件中搜索并找到被删除数据的 SQL 操作,通常是 DROP TABLEDELETE 等语句。

  5. 执行恢复操作: 将找到的被删除数据的 SQL 操作复制到一个新的 SQL 文件中,并执行该文件以恢复被删除的数据。

  6. 重新启动数据库服务: 在数据还原完成后,重新启动 MySQL 数据库服务。

通过以上步骤,数据库管理员可以利用 mysqlbinlog 工具还原误操作导致的数据丢失,确保数据库的完整性和可用性。

实例分析:利用mysqlbinlog监控数据库主从同步延迟的案例

在数据库主从复制的环境中,可能会出现主从同步延迟的情况,需要及时发现并解决。下面是利用 mysqlbinlog 工具监控数据库主从同步延迟的案例:

  1. 定时解析二进制日志文件: 使用 mysqlbinlog 工具定时解析主服务器上的二进制日志文件,将解析结果保存到一个文本文件中。

  2. 监控复制状态: 在解析二进制日志的过程中,注意查看从服务器的复制状态信息,尤其是 GTID 和复制延迟等信息。

  3. 比较时间戳: 将主服务器和从服务器的最新事务的时间戳进行比较,计算主从同步的延迟时间。

  4. 设定阈值和报警: 根据实际情况设定主从同步延迟的阈值,并设置报警机制,及时通知管理员进行处理。

通过以上步骤,可以利用 mysqlbinlog 工具监控数据库主从同步延迟情况,及时发现并解决同步延迟问题,保证数据库的一致性和可靠性。

相关文章:

解密MySQL二进制日志:深度探究mysqlbinlog工具

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 解密MySQL二进制日志&#xff1a;深度探究mysqlbinlog工具 前言mysqlbinlog工具概述mysqlbinlog的…...

妙解设计模式之策略模式

目录 策略模式的概念生活中的例子编程中的例子 软件工程中的实际应用数据排序文件压缩支付方式图形绘制 策略模式的概念 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;把它们一个个封装起来&#xff0c;并…...

Linux DHCP server 配置

参考&#xff1a;linux dhcp配置多vlan ip_linux 接口vlan-CSDN博客 配置静态IP地址&#xff1a; 给固定的MAC地址分配指定的IP地址&#xff0c;固定的IP地址不必包含在指定的IP池中&#xff0c;如果包含在IP地址池中&#xff0c;固定的IP地址会从IP地址池中移除 配置方法&…...

深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)

力扣166题&#xff1a;分数到小数 在本篇文章中&#xff0c;我们将详细解读力扣第166题“分数到小数”。通过学习本篇文章&#xff0c;读者将掌握如何使用多种方法来解决这一问题&#xff0c;并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释和ASCII图解&am…...

新疆 | 金石商砼效率革命背后的逻辑

走进标杆企业&#xff0c;感受名企力量&#xff0c;探寻学习优秀企业领先之道。 本期要跟砼行们推介的标杆企业是新疆砼行业的龙头企业&#xff1a;新疆兵团建工金石商品混凝土有限责任公司&#xff08;以下简称&#xff1a;新疆金石&#xff09;。 从年产80万方到120万方&am…...

Dinky MySQLCDC 整库同步到 Doris

资源&#xff1a;flink 1.17.0、dinky 1.0.2、doris-2.0.1-rc04 问题&#xff1a;Cannot deserialize value of type int from String &#xff0c;detailMessageunknowndatabases &#xff0c;not a valid int value 2024-05-29 16:52:20.136 ERROR org.apache.doris.flink.…...

基于Qt的网上购物系统的设计与实现

企鹅&#xff1a;2583550535 代码和论文都有 第1章 绪论... 1 1.1 项目背景... 1 1.2 国内外研究现状... 1 1.3 项目开发意义... 3 1.4 报告主要内容... 3 第2章 关键技术介绍... 4 2.1 后端开发技术... 4 2.1.1 C. 4 2.1.2 Qt框架... 4 2.1.3 MySQL数据库... 5 2.2 …...

设计软件有哪些?建模和造型工具篇(4),渲染100邀请码1a12

建模使用到的工具有很多&#xff0c;这次我们接着介绍。 1、PolyBoost PolyBoost是由Digimation公司开发的3ds Max插件&#xff0c;旨在增强软件的多边形建模功能。该插件提供了一系列强大的建模工具&#xff0c;如边缘控制、顶点编辑、面片调整等&#xff0c;使用户能够更加…...

Java基础:面向对象(二)

Java基础&#xff1a;面向对象&#xff08;二&#xff09; 文章目录 Java基础&#xff1a;面向对象&#xff08;二&#xff09;1. 面向对象编程思想2. 类与对象2.1 类2.1.1 类的定义2.1.2 成员变量2.1.3 局部变量 2.2 对象2.2.1 对象的定义2.2.2 对象的使用2.2.3 对象创建的原理…...

【汽车之家注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…...

cocos 通过 electron 打包成 exe 文件,实现通信问题

cocos 通过 electron 打包成 exe 文件&#xff0c;实现通信问题 首先&#xff0c;我使用的 cocos 版本是 2.4.12&#xff0c;遇到一个问题&#xff0c;是啥子呢&#xff0c;就是我要把用 cocos 开发出来的项目打包成一个 exe 可执行程序&#xff0c;使用的是 electron &#xf…...

python中pow是什么意思

pow()方法返回xy&#xff08;x的y次方&#xff09;的值。 语法 以下是math模块pow()方法的语法&#xff1a; import math math.pow( x, y ) 内置的pow()方法 pow(x, y[, z]) 函数是计算x的y次方&#xff0c;如果z在存在&#xff0c;则再对结果进行取模&#xff0c;其结果等效…...

Go语言数据库框架 — Gorm

Go入门之Gorm 框架_go gorm-CSDN博客 https://zhuanlan.zhihu.com/p/677057361 一、简介 Gorm框使用ORM技术&#xff0c;将对象(O)和关系数据库(R)之间的映射(M)抽象出来&#xff0c;开发者通过操作对象的方式操作数据库&#xff0c;不需要直接处理SQL语句&#xff0c;降低了…...

Python库之PyQuery的高级用法深度解析

Python库之PyQuery的高级用法深度解析 引言 PyQuery是一个强大的Python库&#xff0c;它提供了类似于jQuery的语法来解析和操作HTML和XML文档。虽然PyQuery的基本用法已经相当直观&#xff0c;但本文将深入探讨一些高级用法&#xff0c;帮助开发者更高效地处理复杂的HTML文档…...

「架构」单元测试及运用

在参与管理和研发软件项目的过程中,单元测试的实际运用对于确保最终产品的质量至关重要。以下是一些实际运用的案例和说明。 静态测试的实际运用 在TechCorp的电子商务平台项目中,静态测试作为代码质量保证的第一道防线。开发团队在编写代码的同时,使用SonarQube等静态代码…...

C# 数组/集合排序

一&#xff1a;基础类型集合排序 /// <summary> /// 排序 /// </summary> /// <param name"isReverse">顺序是否取反</param> public static void Sort<T>(this IList<T> array, bool isReverse false)where T : IComparable …...

HDRnet

local feature and global feature 在这里插入图片描述 Local features and Global features in Image Local feature also known as local descriptors, are distinct, informative characteristics of an image or video frame that are used in computer vision and image…...

【ArcGISPro】3.1.5下载和安装教程

下载教程 arcgis下载地址&#xff1a;Трекер (rutracker.net) 点击磁力链下载弹出对应的软件进行下载 ArcGISPro3.1新特性 ArcGIS Pro 3.1是ArcGIS Pro的最新版本&#xff0c;它引入了一些新的特性和功能&#xff0c;以提高用户的工作效率和数据分析能力。以下是ArcGIS…...

理解多线程看这一篇就够了

一、基本概念与关系 程序 程序是含有指令和数据的文件&#xff0c;静态地存储在磁盘等存储设备上。它是软件的实体&#xff0c;但未被激活。 进程 进程是程序的一次执行过程&#xff0c;是系统运行程序的基本单位。当程序被操作系统加载并执行时&#xff0c;就成为一个进程&a…...

解释“this”的工作原理,原型继承如何工作,以及如何实现手写JS继承。还包括Array对象自带的方法列举,以及如何使用闭包。

1:"this"的工作原理: this 关键字指向当前执行上下文的对象,也就是当前函数被调用时所在的对象。this 的值取决于函数的调用方式,不同的调用方式会导致 this 指向不同的对象:作为对象的方法调用,this 指向该对象作为普通函数调用,this 指向全局对象(浏览器中是 wind…...

Cursor AI Pro终极解锁指南:告别试用限制的专业解决方案

Cursor AI Pro终极解锁指南&#xff1a;告别试用限制的专业解决方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your t…...

Linux文件搜索工具FSearch:从卡顿到闪电的搜索体验革新

Linux文件搜索工具FSearch&#xff1a;从卡顿到闪电的搜索体验革新 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 在Linux系统中&#xff0c;文件搜索往往是一场与时…...

ConvNeXt 改进 :ConvNeXt添加可变形卷积(DCNv2,CVPR 2018),实现高效涨点,二次创新CNBlock结构 ,独家首发

本文教的是方法,也给出几种改进方法,二次创新结构,百变不离其宗,一文带你改进自己模型,科研路上少走弯路。 前言 DCNv2对原始的DCNv1进行了改进,可变形卷积网络的卓越性能源于其适应对象几何变化的能力。通过对其自适应行为的检查,虽然对其神经特征的空间支持比常规的Co…...

别再怕凸优化!手把手教你估算二阶锥(SOC)和线性矩阵不等式(LMI)问题的计算量

凸优化实战指南&#xff1a;SOC与LMI问题计算量估算的工程化思维 在无线通信系统设计和信号处理算法开发中&#xff0c;工程师们经常需要面对各种优化问题。当论文中那些充满二阶锥&#xff08;SOC&#xff09;和线性矩阵不等式&#xff08;LMI&#xff09;的数学公式摆在面前…...

当企业规模增长后,IT管理为什么越来越“失控”?

在企业早期&#xff0c;IT 管理往往是“够用就好”。 一套简单的工单工具、一份资产台账、几个人工流程&#xff0c;就足以支撑日常运转。但当企业规模逐渐扩大&#xff0c;员工数量增长、系统复杂度提升、业务节奏加快时&#xff0c;原本“还能用”的 IT 管理方式&#xff0c;…...

数据库索引原理:B+树与哈希索引的深度对决

数据库索引原理&#xff1a;B树与哈希索引的深度对决在数据库的世界里&#xff0c;索引是提升查询性能的“核武器”。如果把数据库表比作一本厚厚的书&#xff0c;那么索引就是书中的目录。没有目录&#xff0c;想要找到特定的知识点只能一页页翻找&#xff08;全表扫描&#x…...

模拟电路经典设计解析与工程实践

1. 模拟电路设计的艺术&#xff1a;那些令人拍案叫绝的经典设计在模拟电路设计的浩瀚海洋中&#xff0c;总有一些电路设计能让人眼前一亮&#xff0c;它们或简洁优雅&#xff0c;或构思巧妙&#xff0c;或性能卓越。作为一名从业十余年的模拟电路工程师&#xff0c;我想分享几个…...

别再只会用FFT了!用MATLAB的czt函数实现窄带信号高分辨率频谱分析

别再只会用FFT了&#xff01;用MATLAB的czt函数实现窄带信号高分辨率频谱分析 在信号处理领域&#xff0c;频谱分析是最基础也是最重要的技术之一。传统上&#xff0c;工程师们习惯使用快速傅里叶变换&#xff08;FFT&#xff09;来获取信号的频域信息。然而&#xff0c;当面对…...

2026年正点原子开发板移植方案——从0开始的Rootfs之路(5)WSL + NFS 网络启动踩坑记:从挂载失败到成功启动的完整历程

2026年正点原子开发板移植方案——从0开始的Rootfs之路&#xff08;5&#xff09;WSL NFS 网络启动踩坑记&#xff1a;从挂载失败到成功启动的完整历程项目已经开源&#xff01;尝试使用IMX-Forge给你的开发板跑新的Linux 7.0内核&#xff1a;https://github.com/Awesome-Embe…...

xi-mac性能优化指南:7个技巧让你的编辑器运行如飞

xi-mac性能优化指南&#xff1a;7个技巧让你的编辑器运行如飞 【免费下载链接】xi-mac The xi-editor mac frontend. 项目地址: https://gitcode.com/gh_mirrors/xim/xi-mac xi-mac是一款基于Rust后端和Cocoa前端的现代文本编辑器&#xff0c;以其卓越的性能表现而闻名。…...