实现思路如下:

  • 复制原数据库moviedb至newmoviedb
  • 设置max_allowed_packet,以保证一条insert语句可以插入足够多的元组
  • 用python生成一条一次插入10000个元组的insert语句
  • 用python生成一个包含100条insert语句的事务,保存至sql文件
  • 用navicat运行该sql文件

至此就可以实现一百万条记录的插入了(我的电脑耗时327s?好像很慢!?)

之后再套一层循环就可以继续完成1千万条记录的插入了。

下面给出可能用到的步骤(如未说明,代码默认为控制行或者mysql环境下的命令):

复制数据库

创建新数据库newmoviedb

登录并创建数据库:

mysql -u root -pCREATE DATABASE `newmoviedb` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;

复制moviedb至newmoviedb

复制数据库

mysqldump moviedb -u root -pchouxianyu --add-drop-table | mysql newmoviedb -u root -pchouxianyu

上面chouxianyu是我的mysql密码

进入newmoviedb

use newmoviedb;

设置max_allowed_packet
设置max_allowed_packet为100M

set global max_allowed_packet = 100*1024*1024;

删除movies中所有元素(调试用)

delete from movies;

生成一条insert语句
下边是insert.py

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
insertStr = "INSERT INTO movies(title,year,length,movietype,studioname,producerC) VALUES"
value1_str = "('mymovietitle',"
# j
value2_str = ",120,'sciFic','MGM',100)"
# ,;
num_value = 10000f = open(r'C:\Users\Cxy\Documents\Navicat\MySQL\Servers\MySQL\newmoviedb\insertRow.sql', 'w')  # 清空文件内容再写f.write(insertStr)
for j in range(1, num_value):f.write(value1_str)f.write(str(j))f.write(value2_str)f.write(',')f.write(value1_str)
f.write(str(num_value))
f.write(value2_str)
f.write(';')f.close()

生成一个事务
以下是transaction.py

transaction_begin_str = "START TRANSACTION;\n"
transaction_end_str = "COMMIT;\n"insertStr = "INSERT INTO movies(title,year,length,movietype,studioname,producerC) VALUES"
value1_str = "('mymovietitle',"
# j
value2_str = ",120,'sciFic','MGM',100)"
# ,;
num_value = 10000
num_sql = 100
# 打开文件
f = open(r'C:\Users\Cxy\Documents\Navicat\MySQL\Servers\MySQL\newmoviedb\transaction.sql', 'w')  # 清空文件内容再写# 将SQL语句写入文件
f.write(transaction_begin_str)
for i in range(1, num_sql+1):f.write(insertStr)for j in range(1, num_value):f.write(value1_str)f.write(str(i*num_value*10+j))f.write(value2_str)f.write(',')f.write(value1_str)f.write(str(i*num_value*10+num_value))f.write(value2_str)f.write(';\n')
f.write(transaction_end_str)# 关闭文件
f.close()

python+mysql:实现一千万条数据插入数据库相关推荐

  1. Mysql中一千万条数据怎么快速查询

    文章来源: 学习通http://www.bdgxy.com/ 目录 普通分页查询 如何优化 偏移量大 采用id限定方式 优化数据量大问题 普通分页查询 当我们在日常工作中遇到大数据查询的时候,第一反应 ...

  2. mysql插10万条数据_MySQL数据库插入100w条数据要花多久?

    MySQL数据库插入100w条数据要花多久? 1.多线程插入(单表) 2.多线程插入(多表) 3.预处理SQL 4.多值插入SQL 5.事务(N条提交一次) # 多线程插入(单表) 问:为何对同一个表 ...

  3. JAVA高效率 (秒级) 将千万条数据导入数据库 (已封装工具类)【详解】【一看就懂】

    该gif做了加速处理,便于观看~  今天在将一个500w+条数据的文件导入至数据库时,遇到一个异常,相信做大数据应该都有遇到.500w条数据说多不多,说少也不少.既然问题出现了,那么就一定要解决. 异 ...

  4. 【Mysql】大批量(百万级)数据插入数据库应该怎么做(提高效率)?

    一:在数据库中进行操作 1.合并sql语句(一个sql插入单条数据转为一个sql插入多条数据) 一个sql插入一条数据: insert into table_name(id,name) values( ...

  5. mysql查出倒序第一条数据_[数据库]mysql 记录根据日期字段倒序输出

    [数据库]mysql 记录根据日期字段倒序输出 0 2016-07-21 11:00:17 我们知道倒序输出是很简单的 select * from table order by id desc 直接这 ...

  6. mysql如何快速插入一千万条数据_如何快速安全的插入千万条数据?

    最近有个需求解析一个订单文件,并且说明文件可达到千万条数据,每条数据大概在20个字段左右,每个字段使用逗号分隔,需要尽量在半小时内入库. 思路 1.估算文件大小 因为告诉文件有千万条,同时每条记录大概 ...

  7. mysql插10万条数据_如何快速安全的插入千万条数据?

    点击上方 小伟后端笔记 ,选择 星标 公众号 重磅资讯.干货,第一时间送达 最近有个需求解析一个订单文件,并且说明文件可达到千万条数据,每条数据大概在20个字段左右,每个字段使用逗号分隔,需要尽量在半 ...

  8. insert批量插入500ms_如何快速安全的插入千万条数据

    作者:ksfzhaohui 最近有个需求解析一个订单文件,并且说明文件可达到千万条数据,每条数据大概在20个字段左右,每个字段使用逗号分隔,需要尽量在半小时内入库. 思路 1.估算文件大小 因为告诉文 ...

  9. 如何快速安全的插入千万条数据?

    最近有个需求解析一个订单文件,并且说明文件可达到千万条数据,每条数据大概在20个字段左右,每个字段使用逗号分隔,需要尽量在半小时内入库. 思路 1.估算文件大小 因为告诉文件有千万条,同时每条记录大概 ...

最新文章

  1. TensorRT 7.2.1开发初步
  2. 阿里算法,浙大博士带你写项目经历!
  3. 1.17 局部内部类
  4. 深度解密Go语言之pprof
  5. linux系统迁移的重要配置文件,mylinuxbackup
  6. [vue] vue性能的优化的方法有哪些?
  7. 计算机数学基础 刘树利,计算机数学基础课件教学课件作者刘树利11课件.ppt
  8. 一起谈.NET技术,WPF Ribbon 开发资料分享
  9. building a blog
  10. 台式电脑计算机怎么添加任务栏,win10系统任务栏添加计算机快捷图标的详细技巧...
  11. 实战matlab之文件与数据接口技术,实战MATLAB之文件与数据接口技术
  12. C#获取 Flv视频文件播放时间长度等信息
  13. log4j 日志输出级别
  14. 计算各个城市实际地区生产总值(附各个城市实际GDP)
  15. 【Week 8 作业 B】猫猫向前冲
  16. 手把手教你如何安装水晶易表——靠谱的安装教程
  17. 华为防火墙双机热备-HRP
  18. 基于STM32的ESP8266天气时钟(1)---------AT指令获取天气数据
  19. ASUS AC1900p 梅林固件编译 asuswrt-merlin
  20. 关于origin简单作图

热门文章

  1. 利用BIND 9基于电信网通智能DNS 搭建
  2. 【转】三分钟了解Fiori背后的设计理念
  3. 6、Power View—条形图的应用
  4. SAP MM 库存初始化和批量扩充物料仓位
  5. 关于PR转PO的注意事项
  6. ABAP程序设计的一点建议
  7. 你会因为什么原因而离职
  8. 数据分析精华经验分享,看看冠军是如何炼成的?
  9. 美团医美发起“至美行动”,单月拦截六万余条虚假医美评价
  10. “挤掉”优衣库的Ubras、蕉内、内外等新内衣品牌们,到底牛在哪?