MySQL中如何读取TXT文件:三种实用方法详解

在MySQL中,读取TXT文件内容主要可以通过LOAD DATA INFILE语句命令行工具mysqlimport以及通过编程语言(如Python、PHP)作为中介这三种核心方法实现。LOAD DATA INFILE是MySQL原生支持的最高效、最常用的方式,它能直接将文本文件的数据高速导入到数据库表中。

mysql中如何读取txt,MySQL高效读取TXT文件方法

使用LOAD DATA INFILE语句(推荐) 这是MySQL内置的专用数据导入命令,其基本语法如下:

LOAD DATA INFILE '文件路径/文件名.txt'
INTO TABLE 表名
FIELDS TERMINATED BY '分隔符' --  ',' 或 '\t'
LINES TERMINATED BY '行终止符'; --  '\n'

要将一个用逗号分隔的data.txt文件导入users表,可以执行:

LOAD DATA LOCAL INFILE '/tmp/data.txt' -- 注意文件路径和LOCAL关键字
INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

关键点

  • 使用LOCAL关键字可从客户端机器读取文件,否则文件需位于服务器端。
  • 必须确保文件路径正确,且MySQL进程有相应的文件读取权限。
  • 可以配合IGNORE number LINES跳过文件头,或使用SET子句转换数据格式。

使用mysqlimport命令行工具 mysqlimport实际上是LOAD DATA INFILE的命令行封装,使用起来更为便捷。

mysqlimport --local -u 用户名 -p 数据库名 \
--fields-terminated-by=',' \
--lines-terminated-by='\n' \
文件路径/文件名.txt

注意:工具会默认使用文件名(不含扩展名)作为目标表名。

通过编程语言中转处理 当需要更复杂的数据清洗或逻辑控制时,可借助Python、PHP等语言读取TXT文件,经过程序处理后再通过SQL语句插入MySQL,例如使用Python的pymysql库:

import pymysql
connection = pymysql.connect(host='localhost', user='user', password='pass', database='db')
with open('data.txt', 'r') as f, connection.cursor() as cursor:
    for line in f:
        data = line.strip().split(',')
        cursor.execute("INSERT INTO table_name VALUES (%s, %s)", data)
connection.commit()

这种方法灵活性最高,适合处理非规范或需要实时预处理的文本数据。

重要注意事项

  • 权限与安全:使用LOAD DATA INFILE时,需关注MySQL的secure_file_priv系统变量设置,它限制了可读取文件的目录。
  • 数据格式匹配:务必确保TXT文件的字段数量、分隔符、数据类型与目标表结构严格匹配,否则会导致导入失败或数据错乱。
  • 大数据量优化:对于大型文本文件,建议在导入前暂时禁用索引和约束,导入完成后再重建,可大幅提升速度。

对于直接的批量数据导入,应优先选择LOAD DATA INFILE;若需自动化或集成到脚本,可考虑mysqlimport;而涉及复杂业务逻辑时,则推荐通过编程接口实现,根据实际场景选择合适的方法,才能高效、准确地将TXT数据读入MySQL。

未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网

原文地址:https://www.html4.cn/14159.html发布于:2026-09-01