batch insert 1 million datas into mysql】的更多相关文章

最近尝试插入1百万条数据进db,以mysql为例. 1. 顺序insert 先写了个无脑的for循环作为base-line,插1万条耗时1m53s,根本不敢插1百万. foreach(var student in students){ var sql = string.Format("insert into student ... "); cmd.CommandText = sql; cmd.ExecuteNonQuery(); } 2. batch insert 上面这种方式有2个问…
最近使用了一个非常简单易用的方法解决了业务上的一个insert吞吐量的问题,在此总结一下. 首先我们明确一下,insert吞吐量其实并不是指的IPS(insert per second),而是指的RPS(effect rows per second). 其次我们再说一下batch insert,其实顾名思义,就是批量插入.这种优化思想是很基本的,MySQL中最出名的应用就是group commit. 简单的来说,就是将SQL A 变成 SQL B SQL A : insert into tabl…
oracle中的insert all into表示插入多条数据,mysql中可以采用: INSERT INTO表名(字段1,字段2..) values <foreach collection="list" item="item" index="index" separator=","> (#{a},#{b},#{c}) </foreach>…
//插入100条数据package database; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class InsertMysql { public static void main(String[] args) { Connection conn = null; Prepar…
--example 1: DECLARE @pid INT,@name NVARCHAR(50),@level INT,@i INT,@column2 INT SET @pid=0 SET @name ='first' SET @level =5 SET @column2=0 SET @i=0 WHILE @i<30 --30为你要执行插入的次数 BEGIN INSERT INTO table_name ( pid, name,level, column2) VALUES ( @pid, @na…
我的数据库环境是mysql Ver 14.14 Distrib 5.6.45, for Linux (x86_64) using EditLine wrapper 这个数据库是安装在T440p的虚拟机上的,操作系统为CentOs6.5. 我的数据表是这样的: CREATE TABLE `emp` ( `Id` ) NOT NULL AUTO_INCREMENT, `name` ) DEFAULT NULL, `age` ) DEFAULT NULL, `cdate` timestamp NULL…
在MySQL中进行条件插入数据时,可能会用到以下语句,现小结一下.我们先建一个简单的表来作为测试: CREATE TABLE `books` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(200) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `NewIndex1` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 1.insert ignore int…
MySQL中的insert ignore into, replace into等的一些用法总结(转) 在MySQL中进行条件插入数据时,可能会用到以下语句,现小结一下.我们先建一个简单的表来作为测试: CREATE TABLE `books` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(200) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `NewIndex1` (`name`) ) ENGI…
1.第一种:INSERT [INTO] tbl_name[ (col_name, ... ) ]  {VALUES | VALUE}({expr |default}, ... ), (...), ... 如果为自动编号的字段赋值的话,可以采用NULL或者DEFAULT让其采用默认的递增的形式来实现. INSERT users VALUES(DEFAULT, 'Tom', '123', 25, 1); INSERT users VALUES(NULL, 'John', '456', 3*7-5,…
MySQL replace into 有三种形式: 1. replace into tbl_name(col_name, ...) values(...) 2. replace into tbl_name(col_name, ...) select ... 3. replace into tbl_name set col_name=value, ... 1.insert ignore into 当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回.所以使用ignore请确保语句…