编辑
2025-07-04
笔记
00
请注意,本文编写于 45 天前,最后修改于 45 天前,其中某些信息可能已经过时。
  1. 导入表数据先创建好表。
sql
CREATE TABLE IF NOT EXISTS table1 ( id VARCHAR(255) NOT NULL COMMENT 'id', name VARCHAR(255) NOT NULL COMMENT '名字', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2.需要开启临时本地导入文件权限和临时设置会话时间

sql
SET GLOBAL local_infile = 1; -- 临时设置(当前会话有效) SET GLOBAL wait_timeout = 86400; -- 24小时 SET GLOBAL interactive_timeout = 86400; SET GLOBAL net_read_timeout = 3600; -- 1小时 SET GLOBAL net_write_timeout = 3600;
  1. 导入本地txt文件数据
sql
LOAD DATA LOCAL INFILE 'E:/shuju/6.9.txt' -- 本地文件路径 INTO TABLE table1 -- 导入的表名 FIELDS TERMINATED BY '----' -- 表数据的分隔符 LINES TERMINATED BY '\n' -- 导入后换行 (id, name); -- 以下是忽略错误行导入 LOAD DATA LOCAL INFILE 'E:/shuju/6.9.txt' IGNORE INTO TABLE table1 -- 忽略错误行 FIELDS TERMINATED BY '----' LINES TERMINATED BY '\n' (id, name);

4.当存在第三列时,第二列存入qq2字段;否则qq2保持NULL57。COALESCE函数确保phone总取最后一列

sql
LOAD DATA LOCAL INFILE 'E:/shuju/6.9_part1.txt' IGNORE INTO TABLE qq FIELDS TERMINATED BY '----' LINES TERMINATED BY '\n' (@col1, @col2, @col3) SET qq = @col1, qq2 = IF(@col3 IS NULL, NULL, @col2), phone = COALESCE(@col3, @col2);

5.当表里有大量数据时,查询会比较吃力,可以建立索引进行查询。

sql
-- 把id字段改为bigint类型,节省存储空间(bigint 比 varchar(20) 更高效 ALTER TABLE id MODIFY id BIGINT NOT NULL; -- 创建索引设置对应字段 CREATE INDEX 索引名称 ON 表名 (字段) USING BTREE; -- 如果表中是varchar类型,需要强制遵守该sql写法,不然索引失效 SELECT * FROMWHERE 字段 = '123456789';

注意

如果是varchar类型这样索引是不生效的:

SELECT * FROM 表 WHERE 字段 = 123456789;

相反如果是bigint类型就可以这样查询,索引是生效的

本文作者:松轩(^U^)

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

Document