加速无索引表引起的主从延迟数据回放

Liunx 搭建MySQL集群(三) 本文讲解的是主备互备的过程。 上面已经讲过主备的搭建: Liunx 搭建MySQL集群(一) Liunx 搭建MySQL集群(二) 配置参数: #主备都需要新增 log-slave-updates = true #将复制事件写入binlog,一台服务器既做主库又做从库此选项必须要开启 #主自增长ID auto_increment_offset = 1 auto_increment_increment = 2 #备自增加ID auto_increment_offset = 2 auto_incr 阅读详情

加速无索引表引起的主从延迟数据回放

一、场景

由于某些原因,客户现场存在一张 8千万 的大表,而且该表上无任何索引(也无主键),平时该表上 UPDATE 或 DELETE 只操作几条数据。忽然有一天业务进行了某种操作,DELETE 2万 条数据,悲剧发生了,当在主库上执行了之后,传到从库上之后一直回放,当时评估了下可能会回放10天,后来在经过业务同意之后,对表进行操作,用于加速回放日志,处理该问题。

二、处理思路

停掉复制线程,关闭 Binlog 日志记录,添加索引,重启复制线程。

三、复现步骤

1、准备数据:

创建库:

greatsql> CREATE DATABASE qj;
Query OK, 1 row affected (0.01 sec)

准备数据,准备一张8千万数据的表:

$ sysbench --db-driver=mysql --mysql-host=192.168.139.230 --mysql-port=3307 --mysql-user=greatsql --mysql-password=GreatSQL@2024 --mysql-db=qj --table_size=80000000 --tables=1 oltp_write_only  prepare
sysbench 1.1.0-df89d34 (using bundled LuaJIT 2.1.0-beta3)

Creating table 'sbtest1'...
Inserting 80000000 records into 'sbtest1'
Creating a secondary index on 'sbtest1'...

主节点修改表结构,将表的索引去掉

greatsql> USE qj
Database changed
greatsqll> ALTER TABLE sbtest1 MODIFY id int not null;

Query OK, 80000000 rows affected (36 min 29.13 sec)
Records: 80000000  Duplicates: 0  Warnings: 0

greatsql> ALTER TABLE sbtest1 DROP key `k_1`;
Query OK, 0 rows affected (0.96 sec)
Records: 0  Duplicates: 0  Warnings: 0

greatsql> ALTER TABLE sbtest1 DROP PRIMARY KEY;

Query OK, 80000000 rows affected (14 min 29.31 sec)
Records: 80000000  Duplicates: 0  Warnings: 0

2、模拟延迟:

01、主节点:

模拟删除数据

greatsql> DELETE FROM qj.sbtest1 WHERE  k<20000;
Query OK, 19894 rows affected (4 min 20.40 sec)

02、从节点:

等待时间超过DELETE语句的时间,观察延迟情况,确认从节点可读可写

greatsql> SELECT sleep(300);
+------------+
| sleep(300) |
+------------+
|          0 |
+------------+
1 row in set (5 min 0.01 sec)

greatsql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 172.17.139.230
                  Master_User: greatsql
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: binlog.000078
          Read_Master_Log_Pos: 953750186
               Relay_Log_File: relaylog.000231
                Relay_Log_Pos: 949954084
        Relay_Master_Log_File: binlog.000078
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 949953874
              Relay_Log_Space: 953750683
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 1345
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1000403307
                  Master_UUID: 1d0963e9-85d9-11ef-80e1-00163e28e06a
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 1d0963e9-85d9-11ef-80e1-00163e28e06a:1-163235
            Executed_Gtid_Set: 1d0963e9-85d9-11ef-80e1-00163e28e06a:1-163234
                Auto_Position: 1
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
       Master_public_key_path: 
        Get_master_public_key: 0
            Network_Namespace: 
1 row in set, 1 warning (0.00 sec)

greatsql> SHOW GLOBAL  VARIABLES LIKE 'read_only';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| read_only     | OFF   |
+---------------+-------+
1 row in set (0.01 sec)

03、通过操作从节点加速日志回放

找到回放线程,KILL掉回放线程,关闭当前会话binlog日志记录,添加索引,重新启动复制回放线程

greatsql> SHOW PROCESSLIST;
+--------+-----------------+----------------------+------+---------+---------+----------------------------------------------------------+------------------+------------+-----------+---------------+
| Id     | User            | Host                 | db   | Command | Time    | State                                                    | Info             | Time_ms    | Rows_sent | Rows_examined |
+--------+-----------------+----------------------+------+---------+---------+----------------------------------------------------------+------------------+------------+-----------+---------------+
|      5 | event_scheduler | localhost            | NULL | Daemon  | 2369454 | Waiting on empty queue                                   | NULL             | 2369454039 |         0 |             0 |
|     17 | system user     | connecting host      | NULL | Connect | 2369447 | Waiting for source to send event                         | NULL             | 2369446555 |         0 |             0 |
| 543448 | greatsql         | 172.17.136.93:48298  | NULL | Sleep   |     110 |                                                          | NULL             |     109832 |         0 |             0 |
| 543500 | greatsql         | 172.17.139.230:35198 | NULL | Sleep   |     586 |                                                          | NULL             |     585885 |         0 |             0 |
| 543588 | greatsql         | 172.17.136.93:57948  | NULL | Sleep   |      50 |                                                          | NULL             |      49878 |         0 |             0 |
| 543663 | greatsql         | 172.17.139.230:35726 | NULL | Query   |       0 | init                                                     | show processlist |          0 |         0 |             0 |
| 543666 | greatsql         | 172.17.136.93:58908  | NULL | Sleep   |     290 |                                                          | NULL             |     289861 |         0 |             0 |
| 543708 | system user     |                      | NULL | Query   |     477 | Replica has read all relay log; waiting for more updates | NULL             |     476520 |         0 |             0 |
| 543709 | system user     |                      | qj   | Query   |    1383 | Applying batch of row changes (delete)                   | NULL             |      26102 |         0 |             0 |
| 543710 | system user     |                      | NULL | Connect |     477 | Waiting for an event from Coordinator                    | NULL             |     476570 |         0 |             0 |
| 543711 | system user     |                      | NULL | Connect |     477 | Waiting for an event from Coordinator                    | NULL             |     476569 |         0 |             0 |
| 543712 | system user     |                      | NULL | Connect |     477 | Waiting for an event from Coordinator                    | NULL             |     476568 |         0 |             0 |
| 543714 | greatsql         | 172.17.136.93:33582  | NULL | Sleep   |     470 |                                                          | NULL             |     469798 |         0 |             0 |
+--------+-----------------+----------------------+------+---------+---------+----------------------------------------------------------+------------------+------------+-----------+---------------+
13 rows in set (0.00 sec)

greatsql> KILL 543709;
Query OK, 0 rows affected (0.00 sec)

greatsql> SHOW PROCESSLIST;
+--------+-----------------+----------------------+------+---------+---------+----------------------------------+------------------+------------+-----------+---------------+
| Id     | User            | Host                 | db   | Command | Time    | State                            | Info             | Time_ms    | Rows_sent | Rows_examined |
+--------+-----------------+----------------------+------+---------+---------+----------------------------------+------------------+------------+-----------+---------------+
|      5 | event_scheduler | localhost            | NULL | Daemon  | 2369473 | Waiting on empty queue           | NULL             | 2369473241 |         0 |             0 |
|     17 | system user     | connecting host      | NULL | Connect | 2369466 | Waiting for source to send event | NULL             | 2369465757 |         0 |             0 |
| 543448 | greatsql         | 172.17.136.93:48298  | NULL | Sleep   |     129 |                                  | NULL             |     129034 |         0 |             0 |
| 543500 | greatsql         | 172.17.139.230:35198 | NULL | Sleep   |     605 |                                  | NULL             |     605087 |         0 |             0 |
| 543588 | greatsql         | 172.17.136.93:57948  | NULL | Sleep   |       9 |                                  | NULL             |       9132 |         0 |             0 |
| 543663 | greatsql         | 172.17.139.230:35726 | NULL | Query   |       0 | init                             | show processlist |          0 |         0 |             0 |
| 543666 | greatsql         | 172.17.136.93:58908  | NULL | Sleep   |     309 |                                  | NULL             |     309064 |         0 |             0 |
| 543714 | greatsql         | 172.17.136.93:33582  | NULL | Sleep   |     489 |                                  | NULL             |     489000 |         0 |             0 |
+--------+-----------------+----------------------+------+---------+---------+----------------------------------+------------------+------------+-----------+---------------+
8 rows in set (0.00 sec)

greatsql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 172.17.139.230
                  Master_User: greatsql
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: binlog.000078
          Read_Master_Log_Pos: 953750186
               Relay_Log_File: relaylog.000231
                Relay_Log_Pos: 949954084
        Relay_Master_Log_File: binlog.000078
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 1317
                   Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction '1d0963e9-85d9-11ef-80e1-00163e28e06a:163235' at master log binlog.000078, end_log_pos 950241265. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 949953874
              Relay_Log_Space: 953750683
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 1317
               Last_SQL_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction '1d0963e9-85d9-11ef-80e1-00163e28e06a:163235' at master log binlog.000078, end_log_pos 950241265. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1000403307
                  Master_UUID: 1d0963e9-85d9-11ef-80e1-00163e28e06a
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: 
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 241105 19:06:59
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 1d0963e9-85d9-11ef-80e1-00163e28e06a:1-163235
            Executed_Gtid_Set: 1d0963e9-85d9-11ef-80e1-00163e28e06a:1-163234
                Auto_Position: 1
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
       Master_public_key_path: 
        Get_master_public_key: 0
            Network_Namespace: 
1 row in set, 1 warning (0.00 sec)

greatsql> SET sql_log_bin=0;
Query OK, 0 rows affected (0.00 sec)

greatsql> ALTER TABLE qj.sbtest1 ADD index tmp_k(k);
Query OK, 0 rows affected (4 min 51.92 sec)
Records: 0  Duplicates: 0  Warnings: 0

greatsql> START SLAVE;
Query OK, 0 rows affected, 1 warning (0.02 sec)
greatsql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 172.17.139.230
                  Master_User: greatsql
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: binlog.000078
          Read_Master_Log_Pos: 953750186
               Relay_Log_File: relaylog.000231
                Relay_Log_Pos: 953750396
        Relay_Master_Log_File: binlog.000078
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 953750186
              Relay_Log_Space: 953750683
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1000403307
                  Master_UUID: 1d0963e9-85d9-11ef-80e1-00163e28e06a
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 1d0963e9-85d9-11ef-80e1-00163e28e06a:1-163235
            Executed_Gtid_Set: 1d0963e9-85d9-11ef-80e1-00163e28e06a:1-163235
                Auto_Position: 1
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
       Master_public_key_path: 
        Get_master_public_key: 0
            Network_Namespace: 
1 row in set, 1 warning (0.00 sec)

四、思考

01、如何保持主从一致性

02、正在回放数据时,STOP SLAVE 是否会有问题

03、如果主从结构作为数据节点,上层还有计算节点该如何保持元数据的一致性即计算节点记录的表的结构和数据节点的表结构要一致

关于以上三个问题我的处理方案如下:

1、如何保持主从一致性

#为保持主从表结构一致,主节点添加索引
greatsql> SET sql_log_bin=0;
greatsql> ALTER TABLE qj.sbtest1 ADD index tmp_k(k);

2、正在回放数据时,STOP SLAVE是否会有问题

greatsql> STOP SLAVE --当该GTID回放很长时间时,stop可能会很长时间,我们可以采用 kill 线程方式结束回放
greatsql> SHOW PROCESSLIST; --找到会话ID
greatsql> KILL 会话号
greatsql> SHOW SLAVE STATUS  \G 
-- 添加索引即可

3、如果主从结构作为数据节点,上层还有计算节点该如何保持元数据的一致性即计算节点记录的表的结构和数据节点的表结构要一致

-- 当从节点添加上索引之后,在计算节点即代理层给表添加索引,当然该索引名不要与临时添加索引名重复
-- 添加上索引之后,在将从节点上临时添加的索引删除即可
greatsql> STOP SLAVE;
greatsql> SHOW SLAVE STATUS \G 

greatsql> SET sql_log_bin=0;
greatsql> ALTER table qj.sbtest1 DROP index tmp_k;

greatsql> START SLAVE;
greatsql> SHOW SLAVE STATUS \G 

五、总结

加速无索引表的回放主要是针对该表上进行 DELETE 或 UPDATE 操作时有效,而且我们操作的时候要注意是否能记录binlog日志,保证主从数据一致性,当从节点作为数据节点即存储节点的角色时,要关注计算节点即代理层元数据与存储节点元数据的一致性或者是符合计算节点关于该表的定义规则。

Enjoy GreatSQL :)

关于 GreatSQL

GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

image

社区有奖建议反馈: https://greatsql.cn/thread-54-1-1.html

社区博客有奖征稿详情: https://greatsql.cn/thread-100-1-1.html

(对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)

技术交流群:

微信&QQ群:

QQ群:533341697

微信群:添加GreatSQL社区助手(微信号:wanlidbc )好友,待社区助手拉您进群。

MySQL查看主从复制信息详解 SHOW REPLICA STATUS 语句详解 阅读详情

相关推荐

关于MySQL主从复制的数据同步延迟问题

这种主从复制环境在单机应用的时候没有问题,但是在实际的生产环境中,会存在的问题。

Trouvailless的博客 852

【Mysql】mysql主从同步验证

mysql主从验证

qq_51417587的博客 1526

Unity音频流媒体处理:FMETP STREAM 4 架构与实战

音频流媒体处理是实时音视频应用的核心能力,指将音频以字节流方式按需解码、动态缓冲并低延迟输出的技术范式。其原理在于绕过传统 AudioClip 的全量内存加载,转而构建跨线程的解码-缓冲-渲染流水线,显著降低内存峰值与首帧延迟。该技术具备高并发管理、毫秒级 seek、实时滤波等工程价值,广泛应用于开放世界环境音、VR空间音频、语音交互系统及长时教育录音等场景。FMETP STREAM 4 作为 Unity 生态中面向生产环境的音频流媒体处理框架,深度融合智能缓冲、零拷贝内存与多平台自适应调度,代表了从‘资源

weixin_32063439的博客 344

MySQL主从复制中的“show slave status”详细含义

MySQL主从复制中的“show slave status”详细含义 正常状态的信息 *************************** 1. row ************...

coco3600的博客 484

AI眼镜超感知技术解析:多模态融合与边缘计算实践

多模态融合技术通过整合视觉、音频、运动等多种传感器数据,实现对环境的全面感知。其核心原理是利用深度学习算法对不同模态的特征进行对齐和融合,从而获得比单一传感器更丰富的上下文信息。这项技术的价值在于能够显著提升智能设备的场景理解能力和交互体验。在工程实践中,边缘计算架构通过在设备端部署优化的AI模型,实现了低延迟的实时处理,同时保障了用户隐私。结合计算机视觉和语音识别等基础技术,多模态融合在智能眼镜、自动驾驶、智能家居等领域具有广泛应用前景。本文以Meta Super Sensing AI眼镜为例,详细解析了

weixin_33787529的博客 307

【信息科学与工程学】计算机科学与自动化——第一百五十五篇 缓存系统设计02

编号176-190共15个条目,覆盖了缓存互连网络(环形/交叉开关)、硅光互连、散热设计、3D封装TSV、信号完整性、冗余设计、老化补偿、电磁兼容、时钟分布、JTAG测试、安全硬件、调试探针、容错路由、体偏置、共振时钟。:编号161-175共15个条目,聚焦于缓存硬件设计与配置,涵盖了MESI协议、多级TLB、分支预测BTB/BHT、自适应预取引擎、ECC纠错汉明码、路分区硬件、非暂时性存储旁路、缓存冲刷指令、缓存锁定、压缩硬件、嗅探过滤器、虚拟化EPT、QoS限速、内置自测BIST、电源管理DVFS。

weixin_49199313的博客 177

影子模式:自动驾驶系统的核心数据基础设施

影子模式是自动驾驶研发中实现真实世界闭环验证的关键技术,其本质是在不干预车辆控制的前提下,同步复刻主系统全栈推理过程,形成高保真数字镜像。它依托传感器零拷贝分发、亚毫秒级时间同步与边缘智能过滤等原理,构建起覆盖感知、预测、规划、控制的全链路数据采集能力。该技术显著提升算法鲁棒性验证效率,支撑L2+到L3级功能量产准入,并成为UN R157及中国国标强制要求的合规基石。在城市NOA、高速领航等典型场景中,影子模式持续暴露长尾问题,驱动模型迭代与OTA优化,是连接仿真验证与真实驾驶的不可替代桥梁。

weixin_33912453的博客 379

大华监控专用播放器DS-IPlayer功能详解与实战应用

大华DS-IPlayer是一款专为Dahua系列安防设备打造的端到端视频播放中枢,支持本地DAT/DVR格式录像回放及远程IPC/NVR实时预览。其核心优势在于深度集成大华私有协议栈(如Proprietary RTSP扩展),实现设备即插即用、多路并发解码与智能分析联动。大华DS-IPlayer在传统视频回放与预览能力基础上,深度融合了智能分析能力,构建起“前端感知—边缘计算—中心可视化”的闭环体系。

weixin_32445049的博客 1707

atop:Linux系统时间回溯型性能诊断工具

atop不是top的简单替代,而是面向Linux系统可观测性的时序分析工具。它基于内核指标采集原理,将CPU、内存、磁盘、网络等多维资源状态统一压缩为带时间戳的二进制快照,实现秒级粒度的历史回溯与跨维度关联分析。其技术价值在于打破传统监控工具的‘瞬时视图’局限,构建可验证的‘时间-进程-事件-资源’因果链,支撑故障复盘、基线建模与自动化巡检。典型应用场景包括生产环境IO瓶颈定位、定时任务引发的swap抖动排查、容器化环境下的宿主机资源归因等。关键词atop、linux、command共同指向一套以时间为轴心

weixin_34161029的博客 491

功能全面的GIF浏览器7GIF深度解析与应用

7GIF浏览器不是一个简单的“图片查看器”,而是一个面向未来的动态内容分析平台。它让我们不再只是“消费”GIF,而是真正“理解”它。从字节解析到GPU渲染,从事件调度到用户行为记忆,每一个细节都在诉说一件事:好的技术,不该让用户去适应工具,而应让工具去理解用户。而这,或许正是所有优秀软件共同追求的方向。✨本文还有配套的精品资源,点击获取。

weixin_34598113的博客 693

视频格式转换器工具详解与实战应用

视频格式转换器作为多媒体处理的核心工具,承担着解码、转码与封装的关键任务。其基本工作原理是通过解析源文件的封装格式(如AVI、RMVB),分离音视频流,再根据目标格式(如MP4)的要求重新编码并封装。该过程涉及编解码器匹配、参数重配置及容器适配,确保输出文件在不同平台具备良好兼容性。现代转换器不仅支持批量处理与硬件加速,还可集成元数据管理、字幕嵌入与画质优化功能,广泛应用于内容分发、设备适配与媒体归档场景,成为数字视频生态中不可或缺的一环。

weixin_42612405的博客 2249

高并发产品的演进之路

分布式架构的演进之路

羊羊羊 410

Simulink集成Canoe BLF文件的完整CAN通信仿真实战指南

简介:本文系统讲解如何在Simulink中导入、解析并驱动Vector CANoe生成的BLF(Bus Load File)总线负载文件,实现CAN网络行为的高保真离线回放与实时硬件闭环仿真。依托MATLAB CAN Toolbox,涵盖BLF文件结构解析、自动报文源建模、CAN接口配置、硬件适配连接、仿真运行监控及数据可视化分析全流程。该方案广泛应用于汽车电子ECU开发、网络协议验证与故障注入测试,显著提升CAN系统早期验证效率与可靠性。

weixin_36299472的博客 293

MySQL体验gtid复制过程

GTID,全称 `Global transaction identifiers`,也称之为全局事务ID。是一种新的主从集群复制方式。GTID是用来代替传统复制的方法,GTID复制与普通复制模式的最大不同就是不需要指定二进制文件名和位置

码城的博客 639

NumPy 与 Pandas 的详细应用(含实例)

本文系统介绍了Python数据分析中NumPy和Pandas两大核心库的应用。NumPy专注于高效数值计算,提供多维数组和向量化运算功能;Pandas则擅长结构化数据处理,支持数据清洗、分组统计等操作。文章详细讲解了库的安装、基础操作(数组/DataFrame创建、索引切片)、进阶功能(缺失值处理、分组聚合),并通过电商销售分析案例演示了实际应用场景。最后总结了二者的协同优势:NumPy负责底层数值计算,Pandas处理高级数据操作,配合使用可显著提升数据处理效率。建议读者从基础操作入手,结合实际案例练习,

weixin_42030577的博客 2298

如何在huggingface上申请下载使用llama2/3模型

huggingface-cli download --resume-download 模型名称 --local-dir 存放模型的位置 --local-dir-use-symlinks False --resume-download --token token序列号xxxxxxx。登录huggingface,在模型详情页面上,找到这个表单,填写内容,提交申请。需要使用梯子,country填写梯子的位置吧(比如美国)等待一小时左右,会有邮件通知。

a61022706的博客 1万+

MySQL 8 主从配置

MySQL8主从

weixin_43773670的博客 1319

C++中为什么要引入引用变量?

C++引用机制的设计哲学在于平衡性能与安全性。它解决了指针的三个痛点:语法噪音、空指针风险和语义模糊,同时保持了指针的效率优势。引用必须绑定有效对象且不可重绑定的特性增强了安全性,其值语义语法更直观。尤其在运算符重载和const引用场景中,引用展现了不可替代的优势。本质上,引用是编译器优化的指针实现,体现了C++"零开销抽象"的核心思想——既保持底层性能,又提供高级抽象。这种设计允许开发者根据场景灵活选择指针或引用,反映了C++多范式共存的语言智慧。

教学 & 技术专栏 175

mysq读写分离

主数据库已经和从数据库1已经同步(具体参考GTID.md)本次GTID同步是主数据库和从数据库2同步。本次续接上次GTID实验。

m0_62874702的博客 1765

手把手教你用LIO-SAM搞定激光雷达和IMU联合标定(附避坑指南)

本文详细介绍了使用LIO-SAM进行激光雷达与IMU联合标定的全流程,包括标定原理、工具选型、硬件配置、数据采集、LI_calib标定步骤及LIO-SAM集成验证。特别提供了避坑指南和参数优化技巧,帮助开发者高效完成传感器标定,提升自动驾驶和机器人定位精度。

hadoop5ranger的博客 995

ESP32锂电池电量检测实战:从引脚选择到低功耗优化(附完整电路图)

本文详细介绍了ESP32锂电池电量检测的实战方案,从ADC引脚选择到低功耗优化,提供完整的电路图和代码实现。通过MOS管智能开关和深度睡眠技术,显著降低静态功耗至0.5μA,提升设备续航能力。适合物联网开发者解决电量检测中的常见问题。

weixin_28731223的博客 462

MySQL 8 主从延迟监控(复制可观测性)

作者 | Frederic Descamps来源 |https://dev.mysql.com/blog-archive/mysql-8-and-replication-observability/大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 MySQL 8 主从延迟监控(复制可观测性),欢迎点击上方蓝字“JiekeXu DBA之路”关注我的公众号,标星或置顶,更多干货...

JiekeXu的博客 1219

利用PLECS实现Boost变换器的闭环控制仿真与优化

本文详细介绍了如何利用PLECS仿真软件实现Boost变换器的闭环控制与优化。从基础原理到开环系统搭建,再到闭环控制设计与动态优化,提供了完整的仿真实践指南。通过PLECS的仿真功能,工程师可以有效诊断问题、优化参数,并实现高性能的DC-DC变换器设计。

weixin_42527401的博客 325
上一篇: 数据迁移丨借助 pg2mysql 从 PostgreSQL 到 GreatSQL
下一篇: 【GreatSQL优化器-12】make_tmp_tables_info
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值