刚刚去面试,面试官提问了我一次插入几万条数据有什么优化方法,一次更新几万条数据有什么优化方法,这些我之前都没有用过,希望大家给我解一下惑。

回答

1、insert批量执行,禁止单条insert value(注意单条sql长度限制,可临时调整max_allowed_packet)

2、开启事务处理,批量提交。原理类似上1(条件允许可适当增大innodb_log_buffer_size,增加单事务提交日志量,该参数read only)

3、主键顺序插入,效率更高

4、业务允许,暂时disable keys

对要插入的数据进行分组批量插入

INSERT INTO table (column1, column2, …, column_n) VALUES (value11, value12, …, value1n), (value21, value22, … value2n), …, (value_n1, value_n2, … value_nn)

可以参考这个:http://www.yiichina.com/tutor…

INSERT INTO table (column1, column2, ..., column_n) VALUES (value11, value12, ..., value1n), (value21, value22, ... value2n), ..., (value_n1, value_n2, ... value_nn)

MySQL好像对参数个数没啥限制,所以一次插入近千条是没问题的,上万条数据也就没几句INSERT了。

UPDATE的话,如果一个WHERE就命中几万行,每行UPDATE规则都一样的话,而且不涉及到太多索引,应该是比较快的。

如果涉及到太多索引了,那就先批量DELETE,再批量INSERT.

如果不是在线实时运行插入程序的话,可以先去掉索引,停掉记录二进制日志文件,然后执行批量插入任务,插入时可以以一定数量的数据组织成一条insert语句,就想楼上写的那样,然后在循环技术中执行插入。更新的话逻辑也差不多

使用INSERT INTO table (column1, column2, …, column_n) VALUES (value11, value12, …, value1n), (value21, value22, … value2n), …, (value_n1, value_n2, … value_nn)

进行分批次插入; 假入有10000条数据等待插入,分成100次插入(即一次insert100条);

一次执行结束后sleep一段时间后再次进行插入

MySQL一次查几万条数据,【mysql】一次插入几万条数据应该怎么做优化相关推荐

  1. mysql单表狂 insert极限:已实现每秒插入2.5w条数据

    很多同学都有这样的困扰: 工作中项目的数据量不大,遇不到sql优化的场景:单表就几万,我优化个der啊: 业务对性能要求不高,远远没达到性能瓶颈:咱这项目又不是不能跑,优化个der啊: 确实,如果你的 ...

  2. linux c mysql 增删改查_Linux C语言连接MySQL 增删改查操作

    Linux下想要测试mysql和memcached的性能,因为是服务器只能通过终端连接,所以考虑用C语言写测试代码.于是研究了把C怎么连接MySQL以及增删改查的代码.安装mysql-client或者 ...

  3. 图表点编辑数据无反应_word插入图表无法编辑数据

    Word2007文档中的图表功能相对于Word2003的图表工具Microsoft Graph而言,应用更灵活,功能更强大.要想充分发挥图表功能,用户应当在Word2007文档中创建图表,而不是在Wo ...

  4. 实现对mysql增删改查_Java语言实现对MySql数据库中数据的增删改查操作的代码

    简单说操作的步骤: 1.连接数据库 2.将SQL语句发送到数据库 3.执行SQL语句 这里举个例子: 在一个数据库中有个students表,表中有学号(Id),姓名(Name),性别(Sex),地址( ...

  5. jdbc mysql增删改查_使用JDBC连接MySQL数据库操作增删改查

    更多精彩内容欢迎访问我的个人博客皮皮家园:http://www.zhsh666.xyz或者http

  6. excel数据透视表中插入一列新数据

    鼠标选中数据透视表中任意一个单元格,点击 分析 - 字段.项目,再选中"计算字段 " 在弹出的窗口中,名称可定义为自己需要的 在窗口 的公式输入栏中插入计算公式 ,插入方式为:在字 ...

  7. 一分钟内向数据库中批量插入100万数据

    罗列一下三种插入方式: 1.动态SQL拼接 批量插入一万条数据:4.7s @Testpublic void dynamicSql() {List<NotifyRecordEntity> n ...

  8. 如何快速插入大量/批量随机数据到数据库(oracle/sqlserver/mysql/postgresql)

    在日常的数据库开发和测试中,需要创建一些测试的表,并构造一下假的数据.这时就需要向表中插入随机数据,特别是插入大量随机数据以获取更好的验证.笔者在开发和应用中,也遇到了很多类似的问题,对于不同的数据库 ...

  9. 单机版MongoDB插入了亿万条数据之后...

    最近因为公司的一个业务迁移,需要对单机MongoDB做一个简单的测试,在写入了亿万条数据之后,数据库的性能还是受到了一些影响的,这里简单记录下. 因为是非关键业务,且通过统计得出每秒的写入请求数大约是 ...

  10. mysql count 条件_我以为我对MySql很了解,直到我面试了字节跳动

    小湿来到字节跳动,在静待,此时一位长发飘飘的面试官走来.小湿心里想:哎啊,今天遇到个美女面试官,好好表现 面试官:小湿,我看你简历上写了熟练掌握MySql和MySql的调优是吧? 小湿:是的,面试官. ...

最新文章

  1. ubuntu安装numpy,matplotlib等
  2. java信息管理系统总结_java实现科研信息管理系统
  3. php return 返回html_【php socket通讯】php实现http服务
  4. python 廖雪峰数据分析统计服_廖雪峰Python总结1
  5. vue.js入门环境搭建
  6. java字符排序_Java实现对字符串中的数值进行排序操作示例
  7. 计算机图形学前沿领域的设想,计算机图形学
  8. SLAM笔记------------------(1)
  9. Atitit 命令行dsl传递参数的几种模式对比 cli url模式 键值对NameValuePair urlutil String string = -host 101.13
  10. 广义pareto分布_帕累托分布
  11. VB DoEvents 的使用
  12. 巧用CHKDSK命令修复U盘文件或目录损坏问题
  13. 高性能软件系统设计中应该考虑的问题
  14. 【风马一族_xml】xml语法
  15. 怎么将计算机恢复到前一天的状况,excel表格恢复前一天数据-我想将excel表格中的两组数据做对比(数据是每天变......
  16. 【python】打开网页和下载文件
  17. R语言实战笔记 基本统计分析-相关
  18. 安卓中QQ登陆源代码
  19. pyautogui脱离屏幕基于图片的图像定位
  20. 【Linux】指令介绍

热门文章

  1. Day2 - Python基础2作业【购物车程序】
  2. linux添加自定义的命令!
  3. Ubuntu 下压缩软件的安装
  4. C#窗体控件-列表框控件ListBox
  5. 安装mysql程序运行出错_如何解决mysql安装后.net程序运行出错的问题
  6. python批量替换文件_python实现文件名批量替换和内容替换
  7. 【免费毕设】基于Ajax+Lucene构建搜索引擎的设计和实现(源代码+lunwen)
  8. php怎么获取权限操作 shell,利用php利用root权限执行shell脚本必须进行以下几个步骤...
  9. whitelabel error page怎么解决_pyppeteer使用遇到的bug及解决方法
  10. c lambda表达式 select 改变字段名称_C博客作业01--分支、顺序结构 - 吖黑大帅