Mysql利用存储过程插入400W条数据】的更多相关文章

CREATE TABLE dept( /*部门表*/ deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, /*编号*/ dname VARCHAR(20) NOT NULL DEFAULT "",/*名称*/ loc VARCHAR(13) NOT NULL DEFAULT "" /*地点*/ )ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE emp( /*EMP雇员表*/ e…
比如插入1000W数据,不建议一次性插入,比如一次插入500W,分批插入. 创建表 /*部门表*/ CREATE TABLE dept( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, /*id*/ deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT , /*编号*/ dname VARCHAR() NOT NULL DEFAULT "",/*名称*/ loc VARCHAR() NOT NULL DEFAULT…
查看所有存储过程: show procedure status; 查看详细存储过程 ptest: show create procedure ptest; 存储过程插入数据: create table milli(id int auto_increment primary key, name varchar(20), num int); truncate table milli; delimiter $$ drop procedure if exists ptest; create proced…
mysql一次插入多条数据: INSERT INTO hk_test(username, passwd) VALUES ('qmf2', 'qmf2'),('qmf3', 'qmf3'),('qmf4', 'qmf4'),('qmf5', 'qmf5') GO…
工作中遇到的问题,先记录一下,方便以后查看 存在两张表,user表和friend表 user表部分字段,如上图 friend表部分字段,如上图 往friend表插入千条数据,friend表中的userId值是固定的,对应的friendId是从user表中获取 实现方案: 1.游标存储: -- 在windows系统中写存储过程时,如果需要使用declare声明变量,需要添加这个关键字,否则会报错. delimiter // drop procedure if exists insertUserFr…
LAST_INSERT_ID 自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里 The ID that was generated is maintained in the server on a per-connection basis. LAST_INSERT_ID是基于单个connection的, 不可能被其它的客户端连接改变. 可以用 SELECT LAST_INSERT_ID(); 查询LAST_INSERT_I…
public class Demo02Batch { /* * 批处理 */ public static void main(String[] args) { Connection conn=null; Statement stmt=null; try { Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql:///little", "roo…
最近需要测试一下mysql单表数据达到1000W条以上时增删改查的性能.由于没有现成的数据,因此自己构造,本文只是实例,以及简单的介绍. 首先当然是建表: [sql]view plaincopy CREATETABLE `fortest` ( `ID` INT(30) UNSIGNED NOTNULL AUTO_INCREMENT PRIMARYKEY, `IP` VARCHAR(32) NOTNULL, `OID` VARCHAR(15) DEFAULTNULL) 其次,构建存储过程: [sq…
先介绍一个关键字的使用: delimiter 定好结束符为"$$",(定义的时候需要加上一个空格) 然后最后又定义为";", MYSQL的默认结束符为";" 如何通过mysql命令行批量插入100条数据呢,可以在代码里实现,也可以通过命令行,也就是通过存储过程: delimiter $$create procedure myproc ()begindeclare num int ;set num = 1 ;while num < 100 d…
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 项目中有1000万条历史案卷,为某地方坐标系数据,我们的真实需求是将地方坐标系坐标反转成WGS84坐标,如果现在需要将其转换成百度坐标系数据.常规方案是先建立好整个该市的本地坐标和百度坐标之间的控制点库后再进行转换.但是在具体实施中发现转换特别慢,由于控制点库也有200多万条记录,大概一个点需要一秒钟才能转换完. 2.将Update变成Insert关键字段值…
PHP MySQL 插入多条数据 使用 MySQLi 和 PDO 向 MySQL 插入多条数据 mysqli_multi_query() 函数可用来执行多条SQL语句. 以下实例向 "MyGuests" 表添加了三条新的记录: 实例 (MySQLi - 面向对象) <?php$servername = "localhost";$username = "username";$password = "password";$d…
转自:https://www.aliyun.com/jiaocheng/1396184.html 首先,建立部门表和员工表: 部门表:   create table dept(   id int unsigned primary key auto_increment,   deptno mediumint unsigned not null default 0,   dname varchar(20) not null default "",   loc varchar(13) not…
这篇文章主要介绍了在mysql中使用一条sql语句插入多条数据,效率非常高,但是原理其实很简单,希望对大家有所帮助 假如有一个数据表A: id name title addtime 如果需要插入n条数据 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $time= time(); $data = array(   array(    'name'=>'name1','title'=>'title1','addtime'=>$time;   ),  …
bulk_create批量插入数据 models.py文件 class Book(models.Model): title=models.CharField(max_length=32) urls.py文件 from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), #首页 url(r'^$', views.home), #访问该url就会往book表中批量插入数据 url(r'^index/', views…
阅读本文大概需要 2 分钟. ▌目录 多线程插入(单表) 多线程插入(多表) 预处理 SQL 多值插入 SQL 事务( N 条提交一次) ▌多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程快?同一时间对一个表的写操作不应该是独占的吗? 答:在数据里做插入操作的时候,整体时间的分配是这样的: 链接耗时 (30%) 发送 query 到服务器 (20%) 解析 query (20%) 插入操作 (10% * 词条数目) 插入 index (10% * Index的数目) 关闭链接 (10…
PHP MySQL 插入多条数据 使用 MySQLi 和 PDO 向 MySQL 插入多条数据 mysqli_multi_query() 函数可用来执行多条SQL语句. 以下实例向 "MyGuests" 表添加了三条新的记录: 实例 (MySQLi - 面向对象) <?php $servername = "localhost"; $username = "username"; $password = "password"…
一.创建新表 0.基本语法 create table 表名称(id varchar2(50) primary key ,name char(200) not null,phone number(11) unique,class varchar(10), foreign key (name)) tablespace USERS ----表放在USERS表空间pctfree 10 ----保留10%空间给更新该块数据使用initrans 1 -----初始化事物槽的个数maxtrans 255 --…
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题 下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters). bulk方法主要思想是通过在客户端把数据都缓存在Table中,然后利用SqlBulkCopy一次性把Table中的数据插入到数据库 代码如下: public static void BulkToDB(DataTab…
1建立数据表 create table projectManage ( ID int identity primary key not null, projectName )not null, manager_1 ) not null, manager_2 ) not null, monitor ) not null, isFire ) null , startTime datetime not null, endTime datetime not null, manager_1tel ) no…
Mysql每天执行计划,保留最新的10条数据,其余的删除 1.Mysql 保留最新的10条数据 sql语句: DELETE tb FROM tbname AS tb,( SELECT id FROM tbname ORDER BY id desc LIMIT 9,1 ) AS tmp WHERE tb.id<tmp.id 2.新建存储过程(Navicat中) CREATE PROCEDURE test() BEGIN DELETE tb FROM testdata AS tb,( SELECT…
为了测试mysql的索引,要向数据库先插入上万条数据,然后再测试.手动插入太麻烦,写了一段代码. 先上代码: package action; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class InsertData { public Con…
oracle 与 mysql 不同. mysql 可以直接插入多条数据的操作:  采用 INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....; 或者 INSERT INTO VALUEES(各个值),(各个值),(各个值) . oracle 不直接支持这种操作,但项目中有时需要一次插入多条数据,多次连接数据库会浪费不少的资源,所以需要变通. 以下是个人总结出两种可以同时插入多条数据到数据库中 insert into 某表(字段1,字段2,字段3...) ( s…
虽说不一定5分钟就插入完毕,因为取决去所插入的字段,如果字段过多会稍微慢点,但不至于太慢.10分钟内基本能看到结果. 之前我尝试用多线程来实现数据插入(百万条数据),半个多小时才二十多万条数据. 线程池数据插入核心代码: ExecutorService executorService = Executors.newFixedThreadPool(); executorService.submit(new Runnable() { @Override public void run() { for…
首先官网下载一个hibernate的架包,由于时间关系,博主已经分享到了百度网盘:https://pan.baidu.com/s/1Mw0Og3EKnouf84Njz9UicQ,提取码lens Hibernate的插件:https://pan.baidu.com/s/1YLBe4m9wlfu5dXzYcrpS1Q ,提取码:lens 话不多说我们开始吧 刚开始可以创建一个普通的Java项目如上所是,导入架包,由于博主还不精通所以价包全部导入,架包的基本路径recv\hibernate-relea…
sql插入多条数据的sql语句 有三种方法:1.InSert Into <表名>(列名)Select <列名>From <源表名>如:INSERT INTO TongXunLu (姓名,电话,电子邮件) SELECT SName,SAddress,SEmailFROM Students 这种方法需要先建好新表. 2.Select (列名)Into <表名>From <源表名>如:SELECT Students.SName,Students.SAd…
1.主键自增实现方法:http://www.cnblogs.com/Donnnnnn/p/5959871.html 2.for循环往Oracle中插入n条数据 BEGIN .. loop insert into S_Depart(departId,Departname,Departorder)values(S_S_Depart.Nextval,); end loop; end; 上面循环了50次 执行后,记得commit提交.....…
(1)100W条insert语句在一个连接内一句一句加 花了01:17:19.0542805 (2) SqlBulkCopy 插入100W条数据 设置BatchSize=500 耗时:00:03:29 (3) SqlBulkCopy 插入100W条数据 设置BatchSize=10000 耗时:00:00:48.8999099 (4) SqlBulkCopy 插入100W条数据 设置BatchSize=100000 耗时:00:00:15.7574742 (5) SqlBulkCopy 插入10…
原谅我是初学者,这个方法写的很烂,以后不会改进,谢谢 /** * 通过JDBC向数据库中插入一条数据 1.Statement 用于执行SQL语句的对象 1.1 通过Connection 的 * createStatement() 方法来获取 1.2 通过executeUpdate(sql) 的方法来执行SQL 1.3 * 传入的SQL可以是INSERT/UPDATE/DELETE,但不能是SELECT * * 2.Connection和Statement使用后一定要记得关闭 需要在finally…
使用SQLServer2005插入一条数据时返回当前插入数据的ID 在执行完插入后 再执行 select @@identity from users 就OK 就是刚才插入的那行的 ID了 补充: @@identity 表示当前新增的主键ID 这个是在一个session中查找的, SELECT MAX(id) FROM Users 执行这个查询,就可以返回最新的ID   来自为知笔记(Wiz)…
例如我有一个test表 create table (stuid int,name varchar(20); 插入多条数据,注意不能直接使用insert into test values(1,'a'),(2,'b')之类的语句,应该使用以下语句 insert all into test values(1,'a') into test values(2,'b') select 1 from dual; #这句不知道有什么用处,但是缺少也不行…