首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL快速导入千万条数据(2)

接上文,继续测试3000万条记录快速导入数据库。...一、导入前1000万条数据清库、建库、新建表结构、导入前1000万条数据,结果:■ 1000万行,有2索引导入耗时:16分钟Query OK, 9999966 rows affected, 5920 warnings...二、导入前2000万条数据清库、建库、新建表结构、导入前2000万条数据,结果:■ 2000万行,无 索引导入耗时:45分钟Query OK, 19999966 rows affected, 5920...三、导入后面的1000万条数据由于一次导入千万条数据性能较低,因此决定把后面的1000万行,拆分为部分,分次导入,如下操作:split -l 6000000 mysql_ab mysql_ab_得到个文件...五、总结纵观以上测试,导入3000万条数据耗时73分钟,如果将SQL文件拆分为单个文件500万条以内,可能会耗时更短,也许能控制在60分钟以内,如果电脑配置更高,则会更快。

1.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL快速导入千万条数据(1)

    对于传统的关系数据库如oracle,在大量数据导入方面的效率,我们一般有一个大概的认知,即1分钟以内可以导入千万条数据,而对于MySQL数据库,普遍观点以为性能相对较差,尤其时对于千万级别的数据量,几十分钟...在普遍去IOE的今天,最难的去O也已经势在必行,所以探讨测试一下MySQL的大数据量导入非常有必要。...事实上我们的各个新建项目由于采用了MySQL数据库,在备份恢复时,便会面临大量数据的逻辑导出与导入需求。...read line #每隔1000行获取行号 do echo "\$line" sed -i ''\$line'a '"\$var1""\n""\$var2"'' \$filename # 向文件插入行...好,现在你还会说,MySQL数据库大批量数据导入性能较差吗?下一步继续测试这3000万条数据全部导入的情况。

    2.6K40

    Node.js一次处理10万条数据

    我有幸开发了一个需要处理海量电话号码的系统,这个系统的功能包括: 一次导入10万条Excel数据数据进行筛选去重写入数据库 可对复杂查询条件筛选出数据 导出数据到Excel表格 根据条件修改数据的字段...下面我们就介绍一下如何一次性处理10万条数据,写入MySQL。...写入数据库 对于10万条数据来说,如果用普通的insert语句处理,那么处理时间会非常长。这对于客户来说是不能接受的。Oracle有批量insert,但MySQL却没有。...那么如何才能快速插入10万条数据呢?还要去重! 关于去重,我们需要建立临时表。 所以我们先执行CREATE TABLE 语句创建我们需要的临时表,结构与真实表相同。...还需要让临时表里面的数据合并到真实表中。 要保持数据的一致性,我们需要使用事务处理,一旦出错就会回滚。

    1.1K20

    一次大量删除导致 MySQL的分析

    二、现象描述 通过平台的慢查分析之后,我们发现慢有以下特征: 慢的表名都是 sbtest1,没有其他的表; 大部分的慢都是查表最新的数据,例如 select * from sbtest1 limit...回到数据库本身,慢还在,确认下慢查到底是慢在哪里。 当慢查在执行的时候,大部分的都是表现在 Sending data 的状态,我们通过 profiling 去确认下慢的时间分布: ?...我们注意到数据库的 History list length 这个指标一直在升高,达到了几万。慢的执行时间是随着 History list length 升高而变的更慢。...手动将该线程执行 kill 操作,慢消失。 3.1 聊一下 MVCC MySQL InnoDB 支持 MVCC 多版本,可以在普通的 SELECT 时不加锁。...利用多版本读取指定版本的行记录,降低加锁的次数,能极大提高数据库的并发读写能力。 Innodb 在事务的某个时刻记录下 MySQL 所有的活跃事务列表,保存到 read view 里面。

    1.3K30

    一次大量删除导致 MySQL的分析

    二、现象描述 通过平台的慢查分析之后,我们发现慢有以下特征: 慢的表名都是 sbtest1,没有其他的表; 大部分的慢都是查表最新的数据,例如 select * from sbtest1 limit...回到数据库本身,慢还在,确认下慢查到底是慢在哪里。 当慢查在执行的时候,大部分的都是表现在 Sending data 的状态,我们通过 profiling 去确认下慢的时间分布: ?...我们注意到数据库的 History list length 这个指标一直在升高,达到了几万。慢的执行时间是随着 History list length 升高而变的更慢。...手动将该线程执行 kill 操作,慢消失。 3.1 聊一下 MVCC MySQL InnoDB 支持 MVCC 多版本,可以在普通的 SELECT 时不加锁。...利用多版本读取指定版本的行记录,降低加锁的次数,能极大提高数据库的并发读写能力。 Innodb 在事务的某个时刻记录下 MySQL 所有的活跃事务列表,保存到 read view 里面。

    67720

    详述一次大量删除导致MySQL的过程

    墨墨导读:本文记录一次大量删除导致MySQL的分析,大家有没有遇到过这种问题? 一、背景 监控上收到了大量慢的告警,业务也反馈查询很慢,随即打开电脑确认慢的原因。...二、现象描述 慢的表名都是 sbtest1,没有其他的表; 大部分的慢都是查表最新的数据,例如 select * from sbtest1 limit 1; rows examined 为 1,没有扫描大量的数据...回到数据库本身,慢还在,确认下慢查到底是慢在哪里。 当慢查在执行的时候,大部分的都是表现在 Sending data 的状态,我们通过 profiling 去确认下慢的时间分布: ?...手动将该线程执行 kill 操作,慢消失。 3.1 聊一下 MVCC MySQL InnoDB 支持 MVCC 多版本,可以在普通的 SELECT 时不加锁。...利用多版本读取指定版本的行记录,降低加锁的次数,能极大提高数据库的并发读写能力。 Innodb 在事务的某个时刻记录下 MySQL 所有的活跃事务列表,保存到 read view 里面。

    81120

    MySQL数据库基础:增删

    所属专栏: MySQL 1....,刚刚只查询的是math这一列,这次加上id试试: 可以看到,这一次重复的98并没有被去掉,因为id不同 5.3 排序查询 对于多字段,按照字段的前后顺序,如果第一个字段相同,按照第二个字段进行排序...chinese asc, english asc; 5.4 条件查询 5.4.1 比较运算符 先来看比较运算符 前面的大于等于这些符号和java中一样,就不多说了,而java中相等是用 "==" 表示的,mysql...,通过分页查询可以有效的控制一次查询出来的结果集中的记录条数,可以有效的减少数据库服务器的压力,也有利于用户查看,例如我们经常见到的这种就是用到了分页查询 例如从第0条开始,往后读取2条数据有一下这几种写法...,但是只会执行一个的修改操作 如果说把数学修改为86,那么这个都会被修改,只要找到了符合条件的数据行,就会一次性把这些数据都修改掉,如果不加where条件,所有的内容都会被修改 修改时,set中是可以包含表达式的

    6610

    详述一次大量删除导致MySQL的分析

    二、现象描述 通过平台的慢查分析之后,我们发现慢有以下特征: 慢的表名都是 sbtest1,没有其他的表; 大部分的慢都是查表最新的数据,例如 select * from sbtest1 limit...回到数据库本身,慢还在,确认下慢查到底是慢在哪里。 当慢查在执行的时候,大部分的都是表现在 Sending data 的状态,我们通过 profiling 去确认下慢的时间分布: ?...我们注意到数据库的 History list length 这个指标一直在升高,达到了几万。慢的执行时间是随着 History list length 升高而变的更慢。...手动将该线程执行 kill 操作,慢消失。 3.1 聊一下 MVCC MySQL InnoDB 支持 MVCC 多版本,可以在普通的 SELECT 时不加锁。...利用多版本读取指定版本的行记录,降低加锁的次数,能极大提高数据库的并发读写能力。 Innodb 在事务的某个时刻记录下 MySQL 所有的活跃事务列表,保存到 read view 里面。

    71760

    MySQL数据库的增删改

    , ...); ​ insert into [表名] (字段1, 字段2, ....) values (value1, ...), (value2, ...), (value3, ...); - 插入条记录...drop database [database_name]; drop database web; truncate table employer;-- 删除表和数据,并重新创建表改修改数据 update...行开始查询10行,剩下的分给后续页 联合查询/集合查询(union)select 查询结果是元组的集合,可用union进行结果的集合操作,相当于把多个查询结果进行连接起来输出UNION规则UNION必须由条以上的...列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型。如果取出来的数据不需要去重,使用UNION ALL。...SELECT column1, column2 FROM table1 UNION SELECT column1, column2 FROM table2;假设我们有个表:employees

    6910

    MySql数据库的增删改

    删除数据库drop database db_name; 创建数据库:create database db_name(本质就是Linux在/var/lib/mysql创建一个目录),删除数据库:drop...; 数据库编码问题 创建数据库的时候,有个编码集:1.数据库编码集 2.数据库校验集 数据库编码集——数据库未来存储数据 数据库校验集——支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式...:show charset; 如果想查看数据库支持的字符集校验规则:show collation; 创建指定编码集的数据库 如果没有指定,默认以配置文件为主 种方式创建字符集为utf8的表: create...,现在我们创建数据库: test1数据库校验集设置为utf8_general_ci;字符集默认为utf8;校验规则使用utf8_ general_ ci[不区分大小写] test2数据库校验集设置为...db_ name; 执行删除之后的结果: 数据库内部看不到对应的数据库 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删 注意:不要随意删除数据库 //删除数据d5\d4\d3; mysql

    22930

    MYSQL数据库的增删改

    07.13自我总结 MYSQL数据库的增删改 一.对于库的增删改 增 create database 库名称; create database 数据库名称 charset 编码方式; 删 drop...库名称; 二.对于表的增删改 增 增加表单create table 表名称(字段1 数据类型,字段2 数据类型........限制条件); #至少有一股字段和数据类型,最后一个字段已经最后一个数据类型结束后不加...新字段 新字段数据类型 表 改表名称:rename table 表名称 to 新名称 改表的编码:alter table 表名 charset 新编码; 查看所有表:show tables...查看指定表信息:desc table 表名称 查看指定表创建信息:show create table 表名称 三.对于表里的数据增删改 增 插入一个值 insert into 表名 values...:update 表名 set 字段名称=新的值,字段名称2=值2; 修改满足条件的数据:update 表名 set 字段名称=新的值,字段名称2=值2 where 条件 查看所有字段:select

    4.2K30

    详述一次大量删除导致MySQL的过程分析

    二、现象描述 ---- 通过平台的慢查分析之后,我们发现慢有以下特征: 慢的表名都是 sbtest1,没有其他的表; 大部分的慢都是查表最新的数据,例如 select * from sbtest1...回到数据库本身,慢还在,确认下慢查到底是慢在哪里。 当慢查在执行的时候,大部分的都是表现在 Sending data 的状态,我们通过 profiling 去确认下慢的时间分布: ?...我们注意到数据库的 History list length 这个指标一直在升高,达到了几万。慢的执行时间是随着 History list length 升高而变的更慢。...手动将该线程执行 kill 操作,慢消失。 3.1 聊一下 MVCC MySQL InnoDB 支持 MVCC 多版本,可以在普通的 SELECT 时不加锁。...利用多版本读取指定版本的行记录,降低加锁的次数,能极大提高数据库的并发读写能力。 Innodb 在事务的某个时刻记录下 MySQL 所有的活跃事务列表,保存到 read view 里面。

    64130

    MySQL数据库的增删改(进阶)

    AVG([DISTINCT] expr) 返回查询到的数据的 平均值 MAX([DISTINCT] expr) 返回查询到的数据的 最大值 MIN([DISTINCT] expr) 返回查询到的数据的...查询每个岗位的平均工资,但是刨除掉平均工资大于2000的数据....计算每个岗位的平均工资,刨除张三,也刨除平均工资超过2000的数据. 2.2 联合查询 实际开发中往往数据来自不同的表,所以需要多表联合查询。...; select 字段 from 表1 别名1,表2 别名2 where 连接条件 and 其他条件; 笛卡尔积,就是得到了一个更大的表.例数,就是原来的个表的列数之和.行数,就是原来个表的行数之积...笛卡尔积就是单纯的排列组合,会产生有许多的无效数据.指定连接条件,把无效数据去掉. 2.2.2 外连接 外连接分为左外连接和右外连接。

    14610

    MySQL学习4:数据的增删改CRUD

    数据的增加Create 全列插入 insert into 表名 values(...); 例如: insert into classes values(0,"一班"); 注:主键字段可用 0 null...zstar1", 1); 多行插入 多行之间用逗号分隔 例如: insert into students (name, gender) values ("zstar1", 1),("zstar2",2); 数据的删除...数据的修改Update update 表名 set 列1=值1,列2=值2... where 条件; 例如: 将id为3的记录的gender字段值改为1; update students set gender...=1 where id=3; 数据的查询Retrive 查询所有列 select * from 表名; 定条件查询 例如: 查询id为3的记录 select * from students where...select name,gender from students; 用as指定别名 select 字段[as 别名], from 数据表 where ...; 例如: select name as 姓名

    82430
    领券