作业要求
构建一个关系模式和课本中的关系movies(title,year,length,movietype,studioname,producerC)
一样的关系,名称自定,在这个关系中插入1000万条记录。
注:关系movies
的主键为(title,year)
。
要求如下:
- 在尽可能短的时间内完成;
- 只允许使用原生的SQL,不允许将SQL作为嵌入语言,也不允许使用其他语言如C#、Python等来完成;
- 提交你的详细解决方案和结果。
本文利用LOAD DATA INFILE
将包含一千万条数据的CSV文件存入mysql。
实现
除了newcsv.py
,其他命令均为cmd命令。
生成包含1千万条数据的CSV文件
用python生成与关系movies结构相同的包含1千万条数据的CSV文件。
newcsv.py
如下:
该程序大概耗时18秒。
1 | import csv |
登录mysql
1 | mysql -uroot -p123456 |
上面root
是我的mysql用户名,123456
是我的mysql密码。
进入数据库moviesdb
1 | use moviesdb; |
创建关系mymovies
只复制关系movies的结构,并不复制其数据
1 | CREATE TABLE mymovies LIKE movies; |
将CSV文件存入数据库
1 | LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/bigdata.csv' INTO TABLE mymovies FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS; |
我的电脑上,该文件存入mysql耗时862.646秒,大概14分钟,如下图所示:
参考链接
https://www.cnblogs.com/freefei/p/7679991.html
https://blog.csdn.net/qq_22855325/article/details/76087138
https://blog.csdn.net/weixin_44595372/article/details/88723191
https://zhidao.baidu.com/question/185665472.html
https://www.cnblogs.com/zhangjpn/p/6231662.html
https://www.cnblogs.com/wangcp-2014/p/8038683.html
https://blog.csdn.net/gb4215287/article/details/82669785
作者:@臭咸鱼
转载请注明出处:https://www.cnblogs.com/chouxianyu/
欢迎讨论和交流!