MySQL - 如何快速插入百万行? [复制]

2024-01-05

因此,出于开发目的,我需要一个包含大约 100 万到 1 亿个值的表,我当前的方法一点也不快。

开发人员通常会做什么来让他们的表拥有数百万行来测试他们的程序处理这些数据的速度?

我当前的方法有 10 个 for 循环,但对于我需要的行数来说,它真的很慢。

那么我该怎么做才能快速插入数百万行?在这种情况下,专业开发人员会做什么?


从您的问题中不清楚您需要插入的数据的性质是什么,但如果它可以动态生成,那么最快的方法就是在一个查询中执行(这将插入 100 万客户),如下所示

INSERT INTO customers (id, customer_name)
SELECT n, CONCAT('Customer', n)
  FROM
(
select a.N + b.N * 10 + c.N * 100 + d.N * 1000 + e.N * 10000 + f.N * 100000 + 1 N
from (select 0 as N union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) a
      , (select 0 as N union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) b
      , (select 0 as N union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) c
      , (select 0 as N union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) d
      , (select 0 as N union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) e
      , (select 0 as N union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) f
) t

Here is SQL小提琴 http://sqlfiddle.com/#!2/e14238/210k 行演示

推荐阅读:

  • MySQL:有效地填充存储过程中的表 https://stackoverflow.com/a/17139749/1920232
  • INSERT 语句的速度 http://dev.mysql.com/doc/refman/5.1/en/insert-speed.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL - 如何快速插入百万行? [复制] 的相关文章

  • MSSQL:如何使用代码编写存储过程创建脚本?

    我正在尝试使用一个数据库中存在但另一个数据库中不存在的 information schema routines 查询存储过程定义列表 SELECT t1 Routine Definition FROM server1 MyDatabase
  • 选择每组最新的项目[重复]

    这个问题在这里已经有答案了 可能的重复 检索每组中的最后一条记录 https stackoverflow com questions 1313120 retrieving the last record in each group 我有 2
  • Delphi XE5 FireDAC 错误:无法加载供应商库 [libmysql.dll 或 libmysqld.dll]

    我在 Windows 7 64 位上使用 Delphi XE5 只是尝试 FireDAC 组件 我正在使用一个 TFDConnection 组件连接到本地 MySQL 数据库 v5 6 15 我已经将 libmysql dll 32位 v5
  • Oracle中如何选择前100行?

    我的要求是获取每个客户的最新订单 然后获取前100条记录 我编写了一个如下查询来获取每个客户的最新订单 内部查询工作正常 但我不知道如何根据结果获得前 100 名 SELECT FROM SELECT id client id ROW NU
  • 如何使用 Alter Table 在 Access 中创建小数字段?

    我想以编程方式在 MS Access 表中创建一个新列 我尝试过很多排列ALTER TABLE MyTable Add MyField DECIMAL 9 4 NULL 并得到 字段定义中的语法错误 我可以轻松创建一个数字字段Double类
  • 日常 MySQL(部分和过滤)复制的最佳实践?

    我有一个相当大的数据库 有超过 40 个表 我只需要复制几个表 5 并且每个表也被过滤 我正在寻找一些复制这些数据的最佳实践 每天就足够了 我可以只选择几个表并为每个表包含一些 WHERE 子句 我正在考虑为每个表启动 mysqldump
  • 通过 PDO 将双精度数插入 MySQL 时精度损失

    我遇到了这种非常烦人的行为 我想知道我是否做错了什么 或者这是否是故意的 如果是的话 为什么 每当我在 php 5 3 中有一个 double 类型的变量 并且想将其插入到数据库 MYSQL 5 0 的 double 类型字段中时 该值总是
  • Symfony/Doctrine 重新排列数据库列

    当我使用doctrine schema update命令行生成表时 Doctrine 或Symfony 似乎想要添加一个命令来重新排列我的列 将键放在它出现的前面 我想知道是否 更希望在哪里 我可以禁用环境的这个 功能 所以当我去生成我的表
  • MySQL解释更新

    作为我大学复习的一部分 我试图回答以下问题 至少在表的一个属性上创建索引 employees 数据库 您可以在其中使用 MySQL EXPLAIN 工具 清楚地显示好处 在条款或检索方面 和负面 在 更新条款 创建相关索引的信息 对于第一部
  • 法语和西班牙语的特殊字符可以保存在 varchar 中吗?

    法语和西班牙语中有普通英语中不使用的特殊字符 重音元音等 varchar 是否支持这些字符 或者我需要一个 nvarchar 吗 注 我愿意NOT希望讨论我是否应该使用 nvarchar 还是 varchar 您在谈论什么 SQL 实现 我
  • Python 子进程、mysqldump 和管道

    我在尝试构建简单的备份 升级数据库脚本时遇到问题 错误出现在使用子进程的 mysqldump 调用中 cmdL mysqldump user db user password db pass domaindb gzip gt databas
  • 重用 PDO 语句 var 会使进程崩溃

    我重用一个变量来存储两个不同的 PDO mysql 语句 stmt dbh gt prepare SELECT stmt gt execute stmt dbh gt prepare UPDATE crash here Error in o
  • 如何在 MySQL 中启用严格 sql_mode?

    我怎样才能启用严格sql mode在 MySQL 中 我想从 SQL 中获取数据并在中处理相同的数据strict mode 我现在的sql mode is mysql gt SELECT sql mode sql mode NO ENGIN
  • 选择两列中两个日期之间的记录

    如何选择两列中两个日期之间的记录 Select From MyTable Where 2009 09 25 is between ColumnDateFrom to ColumnDateTo 我有一个日期 2009 09 25 我喜欢选择
  • 常量值如何影响连接的 ON 子句?

    我最近发现 LEFT JOIN 的 ON 子句可能包含 1 1 等值 这让我感到不安 因为它打破了我对连接功能的看法 我遇到过以下情况的更详细版本 SELECT DISTINCT Person ID FROM Person LEFT JOI
  • 如何限制两个表之间一对多关系中的多个数量?

    我有一个带有两个 MySql 表的 MySQL 数据库 第一个是第一个表 表 A 有一列具有唯一值 从值 从 1 到 n 在第二个表 2 表 B 中 我有两列 在第一个表中我有一个名称 在第二个我的值从 1 到 n 如果我在 中添加一个值
  • 如何更新 MySQL 数据库中的两列?

    这不起作用 UPDATE customers SET firstname John AND lastname Smith WHERE id 1 用逗号分隔值 AND是一个逻辑运算符 它的位置是WHERE and ON条款 UPDATE cu
  • SQL Server 标识列值从 0 而不是 1 开始

    我遇到了一个奇怪的情况 数据库中的某些表的 ID 从 0 开始 即使 TABLE CREATE 的 IDENTITY 1 1 也是如此 对于某些表来说是这样 但对于其他表则不然 它一直有效到今天 我尝试过重置身份列 DBCC CHECKID
  • 无法将句子插入数据库

    我有一些句子 我必须选择由 6 个以上单词组成的句子 然后它们将被插入到数据库中
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的

随机推荐

  • dompdf内存问题

    我正在使用 DOMPDF 从一个脚本生成大约 500 份报告 生成大约 10 15 个 PDF 后 内存不足 在调试中 看起来每次加载字体时都会加载 8M 但这似乎应该用字体缓存代码来处理 对这里出了什么问题有什么想法吗 我想发布一个简单的
  • Angular2:可观察内部的变化检测

    只是我用 Angular2 RC3 使用 Angular CLI 尝试了我的第一个应用程序 但我对此迷失了 我对变量的 更改检测 有疑问word 我更新了word里面的变量subscribeObservable 的方法 但没有检测到任何变化
  • Jackson JsonNode 到类型化集合

    转换杰克逊的正确方法是什么JsonNode到java集合 如果它是一个 json 字符串我可以使用ObjectMapper readValue String TypeReference 但对于一个JsonNode唯一的选择是ObjectMa
  • 将表单放置在单击的通知图标上方

    有没有办法将窗体放置在 Windows 7 和 Windows Vista 中单击的 通知 图标上方 这是一个更简单的方法 当 OnClick 事件触发时 您可以获取鼠标的 X Y 位置 您还可以通过这些对象的一些检查来获取任务栏位置Scr
  • 如何在字符串中使用 contains 和 equalsIgnoreCase

    有没有办法检查字符串是否包含某些内容而不区分大小写 例如 此代码无效 只是为了让您对我的问题有一个基本的了解 String text I love ponies if text contains equalsIgnoreCase love
  • python selenium 代码将文本保存在剪贴板中的变量中,通过单击元素将文本复制到剪贴板

    在我的网页上有一个窗口 如下图所示 它有一个显示密码的部分 当我单击 复制 元素时 它将密码复制到剪贴板 然而 该窗口将在 30 秒内关闭 然后剪贴板上复制的密码将丢失 我的目的是将复制到剪贴板上的密码保存到一个变量中 以便在我的 pyth
  • 阻止发送 Laravel 通知

    我正在开发一个功能来发送 级联 或一系列通知 https laravel com docs 5 8 notifications不同频道之间存在延迟 例如 电子邮件 gt 30 分钟后 gt 推送 gt 30 分钟后 gt 短信 该流程运行良
  • WAMP登录系统

    我将一堆以前在不同网站上运行的网站文件转移到WAMP 一切正常 但现在自从我将其转移到WAMP后 一些登录php的东西根本不起作用 这session destroy 东西根本不起作用 我试过了session unset 也 我在 WAMP
  • SQL Server IN(选择)导致不终止查询

    我已将问题缩小到最小的示例 我应该在要运行的实际查询中为顶层选择更多列 Query SELECT AspNetUsers Id FROM Trade US PC INNER JOIN AspNetUsers ON Trade US PC T
  • HTML5 拖放不适用于 IE11

    应用了 HTML5 原生拖放 拖放不适用于 IE 但适用于 chrome 和 firefox 拖动似乎有效 但在 ICE 上没有发生拖放 另一个小问题 在 IE 中 我的可拖动元素周围有一个半透明的正方形 但它的背景是透明的 图像是这样完成
  • 未捕获的 DOMException:无法在“WorkerGlobalScope”上执行“importScripts”

    我正在尝试从中导入脚本 importScripts https www gstatic com firebasejs 9 1 0 firebase app js importScripts https www gstatic com fir
  • dict 的 dict 上的 Mypy 错误:“object”类型的值不可索引

    我有以下关于 python 的字典 dictionary key1 1 sub dict key2 0 当我在以下行运行 mypy 时 print dictionary sub dict key2 它会引发错误Value of type o
  • 如何从外部 AJAX 更新 p:accordionPanel 单个选项卡中的组件?

    我有一个p accordionPanel它代表一个项目列表 每个选项卡中有一个表单 提交任何重复表格后 可能需要额外的数据 即当p dialog弹出提示用户输入更多数据 该对话框是在折叠面板外部定义的 因为与折叠面板中的项目不同 一次只能显
  • 如何设置 log4j 的最大文件大小不受限制?

    我通过谷歌没有得到这个问题的明确答案 所以我把它提交给群体思维的策划者 以确保得到高质量的答案can将来可以使用 Google 使用 log4j RollingFileAppender 我可以设置文件在自身滚动之前达到的最大大小 如下所示
  • SSIS 表达式生成器的转义字符是什么?

    我需要在 SQL Server Integration Services 的表达式生成器中转义引号 我无法用双引号或三引号来转义它 反斜杠 是转义字符 示例 SELECT 分支 tran date FROM TellerTransactio
  • HTML Tidy 的 .NET 版本?

    有谁知道是否有可用于 NET 的 HTML Tidy 原生端口 在 Sourceforge 中 有一个 TidyNet 项目 自 2005 年以来就没有更新过 看起来只是一个包装器 Java 端口似乎作为最近的 JTidy 项目而存在 HT
  • Visual Studio (2022) javascript 调试不适用于 Edge 浏览器

    使用 Visual Studio 2022 v17 1 3 和 Microsoft Edge 99 0 1150 55 我使用 Chrome 来执行 ASP NET 项目 并且 Javascript 断点有效 切换到 Edge 后 Java
  • Stack<> 构造函数在从其他构造函数初始化时是否会反转堆栈?

    这是代码 var s new Stack
  • Fluent Nhibernate - 如何指定表名

    我刚刚开始学习 Nhibernate 和 Fluent Nhibernate 我想在创建映射类时指定表名称 应用程序中的实体名称是 CustomerOrders 但在oracle数据库中 表名称是 CUSTOMER ORDERS 我从谷歌搜
  • MySQL - 如何快速插入百万行? [复制]

    这个问题在这里已经有答案了 因此 出于开发目的 我需要一个包含大约 100 万到 1 亿个值的表 我当前的方法一点也不快 开发人员通常会做什么来让他们的表拥有数百万行来测试他们的程序处理这些数据的速度 我当前的方法有 10 个 for 循环