技术分享 | MySQL Shell import_table 数据导入

MySQL与PostgreSQL命令行数据导入实战指南 数据导入是数据库工程的核心基础能力,涉及字符集编码、字段分隔、NULL处理、事务控制等关键原理。掌握命令行导入技术,不仅能规避GUI工具隐式转换导致的乱码、截断、空值误判等问题,更能实现可复现、可审计、可集成CI/CD的生产级数据加载。本文聚焦MySQL的LOAD DATA INFILE/mysqlimport与PostgreSQL的\copy/COPY机制,深入解析UTF8MB4编码适配、BOM头清除、TSV替代CSV防冲突、NULL显式映射等高频痛点,覆盖百万至千万级结构化数据的高效、安全、可控载入场景 阅读详情

作者:余振兴

爱可生 DBA 团队成员,熟悉 Oracle、MySQL、MongoDB、Redis,最近在盘 TiDB,擅长架构设计、故障诊断、数据迁移、灾备构建等等。负责处理客户 MySQL 及我司自研 DMP 数据库管理平台日常运维中的问题。热衷技术分享、编写技术文档。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

1. import_table介绍

上期技术分享我介绍了 MySQL Load Data 的 4 种将文本数据导入到 MySQL 的常用的方法。

这一期我们继续介绍另一款更加高效的数据导入工具 —— MySQL Shell 工具集中的import_table。该工具的全称是 Parallel Table Import Utility,顾名思义:支持并发数据导入。

该工具在 MySQL Shell 8.0.23 版本后,功能更加完善,以下列举该工具的核心功能。

  • 基本覆盖了 MySQL Data Load 的所有功能,可以作为替代品使用

  • 默认支持并发导入(支持自定义 chunk 大小)

  • 支持通配符匹配多个文件同时导入到一张表(非常适用于相同结构数据汇总到一张表)

  • 支持限速(对带宽使用有要求的场景,非常合适)

  • 支持对压缩文件处理

  • 支持导入到 5.7 及以上 MySQL

2. Load Data 与 import table 功能示例

该部分针对 import table 和 Load Data 相同的功能做命令示例演示,我们依旧以导入 employees 表的示例数据为例,演示 MySQL Load Data 的综合场景

  • 数据自定义顺序导入

  • 数据函数处理

  • 自定义数据取值

## 示例数据如下
[root@10-186-61-162 tmp]# cat employees_01.csv
"10001","1953-09-02","Georgi","Facello","M","1986-06-26"
"10003","1959-12-03","Parto","Bamford","M","1986-08-28"
"10002","1964-06-02","Bezalel","Simmel","F","1985-11-21"
"10004","1954-05-01","Chirstian","Koblick","M","1986-12-01"
"10005","1955-01-21","Kyoichi","Maliniak","M","1989-09-12"
"10006","1953-04-20","Anneke","Preusig","F","1989-06-02"
"10007","1957-05-23","Tzvetan","Zielinski","F","1989-02-10"
"10008","1958-02-19","Saniya","Kalloufi","M","1994-09-15"
"10009","1952-04-19","Sumant","Peac","F","1985-02-18"
"10010","1963-06-01","Duangkaew","Piveteau","F","1989-08-24"

## 示例表结构
 10.186.61.162:3306  employees  SQL > desc emp;
+-------------+---------------+------+-----+---------+-------+
| Field       | Type          | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| emp_no      | int           | NO   | PRI | NULL    |       |
| birth_date  | date          | NO   |     | NULL    |       |
| first_name  | varchar(14)   | NO   |     | NULL    |       |
| last_name   | varchar(16)   | NO   |     | NULL    |       |
| full_name   | varchar(64)   | YES  |     | NULL    |       |  -- 表新增字段,导出数据文件中不存在
| gender      | enum('M','F') | NO   |     | NULL    |       |
| hire_date   | date          | NO   |     | NULL    |       |
| modify_date | datetime      | YES  |     | NULL    |       |  -- 表新增字段,导出数据文件中不存在
| delete_flag | varchar(1)    | YES  |     | NULL    |       |  -- 表新增字段,导出数据文件中不存在
+-------------+---------------+------+-----+---------+-------+

2.1 用 Load Data 方式导入数据

具体参数含义不做说明,需要了解语法规则及含义可查看系列上一篇文章《MySQL Load Data 的多种用法》

load data infile '/data/mysql/3306/tmp/employees_01.csv'
into table employees.emp
character set utf8mb4
fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(@C1,@C2,@C3,@C4,@C5,@C6)
set emp_no=@C1,
    birth_date=@C2,
    first_name=upper(@C3),
    last_name=lower(@C4),
    full_name=concat(first_name,' ',last_name),
    gender=@C5,
    hire_date=@C6 ,
    modify_date=now(),
    delete_flag=if(hire_date<'1988-01-01','Y','N');

2.2 用 import_table 方式导入数据
util.import_table(
    [
        "/data/mysql/3306/tmp/employees_01.csv",
    ],
    {
        "schema": "employees", 
        "table": "emp",
        "dialect": "csv-unix",
        "skipRows": 0,
        "showProgress": True,
        "characterSet": "utf8mb4",
        "columns": [1,2,3,4,5,6],                   ## 文件中多少个列就用多少个序号标识就行
        "decodeColumns": {
            "emp_no":       "@1",                   ## 对应文件中的第1列
            "birth_date":   "@2",                   ## 对应文件中的第2个列
            "first_name":   "upper(@3)",            ## 对应文件中的第3个列,并做转为大写的处理
            "last_name":    "lower(@4)",            ## 对应文件中的第4个列,并做转为大写的处理
            "full_name":    "concat(@3,' ',@4)",    ## 将文件中的第3,4列合并成一列生成表中字段值
            "gender":       "@5",                   ## 对应文件中的第5个列
            "hire_date":    "@6",                   ## 对应文件中的第6个列
            "modify_date":  "now()",                ## 用函数生成表中字段值
            "delete_flag":  "if(@6<'1988-01-01','Y','N')"  ## 基于文件中第6列做逻辑判断,生成表中对应字段值
        }
    })

3. import_table 特定功能

3.1 多文件导入(模糊匹配)
## 在导入前我生成好了3分单独的employees文件,导出的结构一致
[root@10-186-61-162 tmp]# ls -lh
总用量 1.9G
-rw-r----- 1 mysql mysql  579 3月  24 19:07 employees_01.csv
-rw-r----- 1 mysql mysql  584 3月  24 18:48 employees_02.csv
-rw-r----- 1 mysql mysql  576 3月  24 18:48 employees_03.csv
-rw-r----- 1 mysql mysql 1.9G 3月  26 17:15 sbtest1.csv

## 导入命令,其中对对文件用employees_*做模糊匹配
util.import_table(
    [
        "/data/mysql/3306/tmp/employees_*",
    ],
    {
        "schema": "employees", 
        "table": "emp",
        "dialect": "csv-unix",
        "skipRows": 0,
        "showProgress": True,
        "characterSet": "utf8mb4",
        "columns": [1,2,3,4,5,6],                   ## 文件中多少个列就用多少个序号标识就行
        "decodeColumns": {
            "emp_no":       "@1",                   ## 对应文件中的第1列
            "birth_date":   "@2",                   ## 对应文件中的第2个列
            "first_name":   "upper(@3)",            ## 对应文件中的第3个列,并做转为大写的处理
            "last_name":    "lower(@4)",            ## 对应文件中的第4个列,并做转为大写的处理
            "full_name":    "concat(@3,' ',@4)",    ## 将文件中的第3,4列合并成一列生成表中字段值
            "gender":       "@5",                   ## 对应文件中的第5个列
            "hire_date":    "@6",                   ## 对应文件中的第6个列
            "modify_date":  "now()",                ## 用函数生成表中字段值
            "delete_flag":  "if(@6<'1988-01-01','Y','N')"  ## 基于文件中第6列做逻辑判断,生成表中对应字段值
        }
    })
    
## 导入命令,其中对要导入的文件均明确指定其路径
util.import_table(
    [
        "/data/mysql/3306/tmp/employees_01.csv",
        "/data/mysql/3306/tmp/employees_02.csv",
        "/data/mysql/3306/tmp/employees_03.csv"
    ],
    {
        "schema": "employees", 
        "table": "emp",
        "dialect": "csv-unix",
        "skipRows": 0,
        "showProgress": True,
        "characterSet": "utf8mb4",
        "columns": [1,2,3,4,5,6],                   ## 文件中多少个列就用多少个序号标识就行
        "decodeColumns": {
            "emp_no":       "@1",                   ## 对应文件中的第1列
            "birth_date":   "@2",                   ## 对应文件中的第2个列
            "first_name":   "upper(@3)",            ## 对应文件中的第3个列,并做转为大写的处理
            "last_name":    "lower(@4)",            ## 对应文件中的第4个列,并做转为大写的处理
            "full_name":    "concat(@3,' ',@4)",    ## 将文件中的第3,4列合并成一列生成表中字段值
            "gender":       "@5",                   ## 对应文件中的第5个列
            "hire_date":    "@6",                   ## 对应文件中的第6个列
            "modify_date":  "now()",                ## 用函数生成表中字段值
            "delete_flag":  "if(@6<'1988-01-01','Y','N')"  ## 基于文件中第6列做逻辑判断,生成表中对应字段值
        }
    })

3.2 并发导入

在实验并发导入前我们创建一张 1000W 的 sbtest1 表(大约 2G 数据),做并发模拟,import_table 用 threads 参数作为并发配置,默认为 8 个并发。

## 导出测试需要的sbtest1数据
[root@10-186-61-162 tmp]# ls -lh
总用量 1.9G
-rw-r----- 1 mysql mysql  579 3月  24 19:07 employees_01.csv
-rw-r----- 1 mysql mysql  584 3月  24 18:48 employees_02.csv
-rw-r----- 1 mysql mysql  576 3月  24 18:48 employees_03.csv
-rw-r----- 1 mysql mysql 1.9G 3月  26 17:15 sbtest1.csv

## 开启threads为8个并发
util.import_table(
    [
        "/data/mysql/3306/tmp/sbtest1.csv",
    ],
    {
        "schema": "demo", 
        "table": "sbtest1",
        "dialect": "csv-unix",
        "skipRows": 0,
        "showProgress": True,
        "characterSet": "utf8mb4",
        "threads": "8"
    })

3.3 导入速率控制

可以通过 maxRate 和 threads 来控制每个并发线程的导入数据。如,当前配置线程为 4 个,每个线程的速率为 2M/s,则最高不会超过 8M/s。

util.import_table(
    [
        "/data/mysql/3306/tmp/sbtest1.csv",
    ],
    {
        "schema": "demo", 
        "table": "sbtest1",
        "dialect": "csv-unix",
        "skipRows": 0,
        "showProgress": True,
        "characterSet": "utf8mb4",
        "threads": "4",
        "maxRate": "2M"
    })

3.4 自定义 chunk 大小

默认的 chunk 大小为 50M,我们可以调整 chunk 的大小,减少事务大小,如我们将 chunk 大小调整为 1M,则每个线程每次导入的数据量也相应减少。

util.import_table(
    [
        "/data/mysql/3306/tmp/sbtest1.csv",
    ],
    {
        "schema": "demo", 
        "table": "sbtest1",
        "dialect": "csv-unix",
        "skipRows": 0,
        "showProgress": True,
        "characterSet": "utf8mb4",
        "threads": "4",
        "bytesPerChunk": "1M",
        "maxRate": "2M"
    })

4. Load Data vs import_table 性能对比

  • 使用相同库表

  • 不对数据做特殊处理,原样导入

  • 不修改参数默认值,只指定必备参数

-- Load Data语句
load data infile '/data/mysql/3306/tmp/sbtest1.csv'
into table demo.sbtest1
character set utf8mb4
fields terminated by ','
enclosed by '"'
lines terminated by '\n'

-- import_table语句
util.import_table(
    [
        "/data/mysql/3306/tmp/sbtest1.csv",
    ],
    {
        "schema": "demo", 
        "table": "sbtest1",
        "dialect": "csv-unix",
        "skipRows": 0,
        "showProgress": True,
        "characterSet": "utf8mb4"
    })

可以看到,Load Data 耗时约 5 分钟,而 import_table 则只要不到一半的时间即可完成数据导入,效率高一倍以上(虚拟机环境磁盘 IO 能力有限情况下)

5. 技术总结

  • import_table 包含了 Load Data 几乎所有的功能

  • import_table 导入的效率比 Load Data 更高

  • import_table 支持对导入速度,并发以及每次导入的数据大小做精细控制

  • import_table 的导入进度报告更加详细,便于排错及时间评估,包括:

    • 导入速度

    • 导入总耗时

    • 每批次导入的数据量,是否存在 Warning 等等

    • 导入最终的汇总报告

Excel数据导入MySQL全攻略:从CSV到LOAD DATA的实用指南 数据导入是日常开发与数据分析中的高频需求,而Excel与MySQL之间的数据迁移更是常见场景。理解数据从表格到数据库的流转原理,是高效完成导入任务的基础。CSV作为通用纯文本格式,能有效降低格式兼容性问题,同时通过控制字符集和日期格式,可以避免乱码与时间解析错误。掌握LOAD DATA等MySQL原生导入手段,能在处理大批量数据时获得显著性能提升。结合图形化工具与Python脚本,可覆盖从临时小表到定时复杂清洗的多种应用场景。本文从实际工程出发,系统梳理Excel数据导入MySQL的完整路径,助力开发者构建 阅读详情

相关推荐

MySQL三把手术刀:数据导入导出、root密码重置、绕过认证直连

MySQL数据库运维中,数据迁移、权限恢复与紧急接入是高频刚需场景。其底层涉及存储引擎一致性机制、权限验证流程及服务启动原理。掌握mysqldump的事务快照与字符集控制,可避免时间字段丢失、emoji乱码等典型故障;理解--skip-grant-tables与init-file的适用边界,能实现零停机或无感重置root密码;而绕过认证直连则依赖对MySQL启动参数与socket/TCP连接栈的深度认知。这些能力直接支撑CI/CD部署、灾备恢复、开发环境重建等关键应用。本文聚焦5.7至8.4全版本实操差异,

weixin_30342209的博客 2047

新特性解读 | MySQL 8.0 shell util 特性

作者:杨涛涛 本文介绍 MySQL8.0 shell 子模块 Util 的两个导入特性 importTable/import_table(JS和python 版本的命名差异)、importJson/import_json的使用方法。其中import_table 是通过传统 MySQL 协议来通信,Import_json 是通过 X 插件协议来通信。 MySQL 一直以来提供导入文件 SQL 命...

ActionTech的博客 725

MySQL与PostgreSQL命令行导入实战:高效、安全、自动化

结构化数据导入是ETL和数据库运维的基础能力,其核心在于绕过图形化工具的SQL解析与网络往返开销,直连数据库存储引擎。MySQL的LOAD DATA INFILE和mysqlimport、PostgreSQL的psql \copy等命令行工具,通过服务端文件直读或客户端流式协议,实现百万级数据秒级加载。技术价值体现在可控的字符集处理、字段映射、空值定义及与Shell脚本的无缝集成,支撑定时批量、日志归档、SaaS数据同步等典型场景。本文聚焦生产环境高频问题——secure_file_priv权限限制、CSV

weixin_30561425的博客 430

MySQL Shell import_table数据导入

Load Data 与 import table功能示例 该部分针对import table和Load Data相同的功能做命令示例演示,我们依旧以导入employees表的示例数据为例,演示MySQL Load Data的综合场景 数据自定义顺序导入 数据函数处理 自定义数据取值 示例数据如下 [root@10-186-61-162 tmp]# cat employees_01.csv “10001”,“1953-09-02”,“Georgi”,“Facello”,“M”,“1986-06-26” “.

ting2909的博客 1537

MySQL数据恢复实战:如何用frm和ibd文件救回误删的表(附完整脚本)

本文详细介绍了在MySQL数据库发生误删且无binlog备份的紧急情况下,如何利用.frm和.ibd文件进行数据恢复的实战方法。文章深入解析了frm文件(表结构)和ibd文件(表数据)的作用,提供了从提取表结构到导入表空间的完整步骤,并附带了经过验证的自动化恢复脚本,帮助DBA和开发者掌握这项关键的数据救援技能。

uran的专栏 539

python shell命令行中import多层目录下的模块操作

主要介绍了python shell命令行中import多层目录下的模块操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

使用mysql shell 导入数据

使用mysql shell 导入数据

xiangzaixiansheng的博客 1762

Rk3568 百兆以太网RMII模式DTS配置详解

本文详细解析了RK3568芯片在百兆以太网RMII模式下的DTS配置方法,包括时钟树配置、PHY接口模式定义及实际工程中的进阶设置。通过实战案例和调试技巧,帮助开发者快速解决RMII模式下的常见问题,提升工业控制设备的网络稳定性。

weixin_29189377的博客 422

新特性解读 | MySQL 8.0.22 任意格式数据导入

作者:杨涛涛 资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 MySQL 8.0.22 在今年的 10 月 19 日发布,给我们带来很多非常实用的特性。特别是对 MySQL S.

ActionTech的博客 388

PyCharm安装PyQt5及工具(Qt Designer、PyUIC、PyRcc)详细教程来了

Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合。这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的所有工具包,主要内容包括PyQt5、PyQt5-tools的依赖包安装和Qt Designer、PyUIC、PyRcc三个工具的设置。最后简单演示了PyQt5的调用方式及三个工具的使用方法。

Python966的博客 3万+

STM32H750实战:如何用CubeMX配置NAND Flash时序(附常见问题排查)

本文详细解析了STM32H750通过CubeMX配置NAND Flash时序的实战技巧,包括硬件连接、时序参数计算与优化策略,以及常见问题如RGB屏幕干扰、多片选冲突的解决方案。特别针对NAND Flash的时序配置和抗干扰设计提供了实用代码示例和优化建议,帮助开发者提升系统稳定性和性能。

weixin_29176179的博客 365

Import Table(引入表)

<br />文/Iczelion 译/GuFeng 本课我们将学习引入表。先警告一下,对于不熟悉引入表的读者来说,这是一堂又长又 难的课,所以需要多读几遍,最好再打开调试器来好好分析相关结构。各位,努力啊! 下载范例。 理论: 首先,您得了解什么是引入函数。一个引入函数是被某模块调用的但又不在调用者模块 中的函数,因而命名为"import(引入)"。引入函数实际位于一个或者更多的DLL里。调 用者模块里只保留一些函数信息,包括函数名及其驻留的DLL名。现在,我们怎样才能找 到P

oathevil的专栏 1937

大疆Livox Mid-70雷达的使用

一、前期准备 (一)、使用Livox Viewer测试雷达 1、设置静态IP sudo ifconfig enx081f7152092a 192.168.1.50 查看IP是否设置成功 lacyexsale@lacyexsale-KLV-WX9:~$ ifconfig enx081f7152092a Link encap:以太网 硬件地址 08:1f:71:52:09:2a inet 地址:192.168.1.50 广播:192.168.1.255 掩码:255.255.25

LacyExsale的博客 1万+

Apache DolphinScheduler Sqoop 任务节点实战指南:从 MySQL 到 Hive 的数据导入

本文围绕 Apache DolphinScheduler 中的 Sqoop 任务节点,系统讲解如何在低代码 DAG 中编排 Apache Sqoop 的 import / export 作业,实现 RDBMS 与 HDFS / Hive 之间的数据同步。你将掌握 Sqoop 节点的完整参数含义与取值规则、MySQL→Hive 导入的端到端配置示例,以及任务底层如何把表单参数动态拼装为真实 `sqo

gitblog_00062的博客 475

AT32F421玩转AM32电调:手把手教你调试过零点比较器,告别电机抖动

本文详细介绍了如何使用AT32F421芯片调试AM32电调的过零点比较器,解决电机抖动问题。通过硬件配置、软件环境搭建、比较器电路原理分析及filter_level参数动态调整等实战步骤,帮助开发者精准诊断和优化电机控制性能。

weixin_42525632的博客 277

PSM倾向性评分分析介绍、spss进行倾向性评分分析示例

PSM倾向性评分分析介绍、spss进行倾向性评分分析示例

statistics+insight+vista+power 1482

MySQL客户端数据导出导入实战:从CSV处理到自动化备份

数据库的导入导出是数据迁移、备份恢复和系统间数据交换的核心操作,其本质是将结构化数据在不同存储介质或系统间进行序列化与反序列化的过程。在MySQL生态中,除了专业的mysqldump工具,mysql命令行客户端本身也提供了强大的数据流转能力,通过执行SQL语句与输出重定向,能灵活应对多种数据交换场景。其技术价值在于为开发者提供了一种轻量级、可脚本化的数据管道方案,尤其适合快速提取查询结果、处理定制化格式或集成到自动化流程中。在数据同步、环境迁移、日志分析和报表生成等应用场景下,掌握mysql命令的导入导出技

congji3817的博客 435

51单片机 步进电机正反转控制+Proteus仿真

51单片机 步进电机正反转控制+Proteus仿真 Proteus仿真 实例代码 /*************** ******************/ #include <reg52.h> #define uint unsigned int #define uchar unsigned char uchar code FFW[]= { 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09 }; uchar code REV[]= { 0x09,0x

perseverance51博客 2788

sqoop(二)用shell脚本导mysql数据到hive中

首先说一下遇到的问题 1.shell脚本执行错误 KaTeX parse error: Can't use function '\r' in math mode at position 2: '\̲r̲':command not f…’do\r” https://blog.csdn.net/xiaobing_122613/article/details/85032333 3. “java.lang...

fengqingyuebai19的专栏 857

【eclipse】win 10:eclipse 4.9 下载、安装和汉化(支持中英切换)

目录 一、eclipse下载 二、eclipse安装 三、eclipse在线汉化 四、eclipse离线汉化(推荐) 一、eclipse下载 ①官网下载地址(收费):https://www.eclipse.org/downloads/点击前往下载 ②【推荐】我的百度网盘下载地址(包括离线汉化包):点击下载 提取码:0nfw ③eclipse4.9其他地址下载:http...

顾三殇 —— 博客空间(软件测试) 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

sqoop 数据导入脚本

一.序言      简单分享个sqoop 从mysql 集群导入到hdfs hive-table 里面进行分析的例子。      sqoop1.4.6,hadoop2.7,hive1.2.1 ,因为 环境原因,sqoop 没有升级到2~。~   二.简单步骤     1.base_import.sh :  集中配置一些链接信息,和公共参数,并引入其他脚本执行     2.base_c...

Hello World 786

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OpenCart测试环境工程化:WSL+Shell+MySQL校验实战

OpenCart作为主流PHP电商系统,其测试环境需具备与生产一致的可重复性、数据可靠性与逻辑可信度。本文围绕环境标准化(WSL Shell运维)、数据一致性(数据库备份策略)和业务逻辑验证(MySQL数据校验)三大技术支柱展开,解析如何通过Linux原生执行层规避Docker抽象陷阱,利用Shell脚本实现幂等部署与错误防御,并构建覆盖表结构、字段语义与跨表关联的三层校验体系。方案直击电商系统常见痛点:优惠券计算偏差、订单状态幻读、图片路径404及支付-库存不一致等,适用于无专职DevOps的小团队快速落

weixin_34274029的博客 340

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

不用模拟器,Apple 芯片 Mac 如何原生运行 Switch《王国之泪》:完整上手指南

MacNativeGames 让《塞尔达传说 王国之泪》在 Apple 芯片 Mac 上脱离模拟器直接运行:游戏自带的 ARM64 代码原样跑在苹果芯片上,Switch 系统由一个轻量宿主应答,NVN 图形在 Metal 4 上重建,你只需用一条命令从自己的游戏文件构建出 Mac 游戏 App。请注意:必须拥有正版游戏,自备游戏文件与 `prod.keys`,仓库不含任何游戏内容,构建产物仅供个人

gitblog_00939的博客 350

Sqoop安装配置与数据迁移实战:从MySQL到Hadoop生态

数据迁移是构建企业数据仓库和ETL流程中的基础环节,其核心原理在于实现异构数据源之间的高效、稳定传输。在Hadoop生态中,Sqoop作为一款专为结构化数据库与HDFS/Hive之间批量数据同步设计的工具,凭借其与Hadoop原生集成的技术优势,成为数据工程师处理传统关系型数据库与大数据平台间数据搬运的经典选择。通过MapReduce作业并行化处理,Sqoop能显著提升海量数据迁移效率,广泛应用于数据仓库构建、历史数据归档和系统间数据交换等场景。本文聚焦Sqoop 1.4.7的实战部署,针对MySQL到Ha

weixin_33895657的博客 346

Mailu 数据库后端切换指南:从 SQLite 迁移到 PostgreSQL 与 MySQL/MariaDB

Mailu 是一套以 Docker 镜像形式交付的邮件系统,其 Admin 管理界面默认使用 SQLite 保存域名、用户、别名等静态配置数据。本指南基于 [docs/database.rst](https://link.gitcode.com/i/34811768444dccc9d975e8ae2a8f98d0) 展开,完整讲解 Mailu 数据库后端的工作原理、官方推荐做法、以及如何借助 `c

gitblog_01010的博客 173
上一篇: 技术分享 | 物理备份到远程 MySQL 服务器
下一篇: 技术分享 | MySQL 同一事务中更新 innodb 和 myisam 表时应怎么办?
爱可生开源社区
博客等级 码龄8年 1937粉丝 1004原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值