mysql批量数据脚本】的更多相关文章

mysql批量数据脚本 1 建表 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 null default "" )engine=innodb default charset=gbk…
一.建表 # 新建库 create database bigData; use bigData; #1 建表dept 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 NULL DEFAULT "…
零.说在前面 在定义函数之前 需要先将 log_bin_trust_function_creators 值设为开启,原因如下 在主从复制的两台Mysql服务器中,slaver会从master复制数据,而一些操作,比如function所得到的结果可能在slaver和master中不同,可能存在安全隐患,因此,默认情况下该值为0 阻止function的创建. 有两种办法解决: 1.将log_bin_trust_function_creators设为ON 这样一来 开启了log-bin的Mysql s…
#!/bin/bash DT=`date +%Y%m%d` #当前日期YESTERDAY=`date -d "yesterday" +%Y-%m-%d` #昨天,用于处理数据的日期 if [ ! -n "$1" ] ;then echo "ETL Date:$YESTERDAY";else YESTERDAY=${1} echo "ETL Date:$YESTERDAY";fi #AGENT_IDS="'NDM1MW…
最近工作碰到一个问题,如何将大量数据(100MB+)导入到远程的mysql server上. 尝试1: Statement执行executeBatch的方法.每次导入1000条记录.时间为12s/1000条.比较慢. 对于1M次的插入这意味着需要4个多小时,期间还会因为网络状况,数据库负载等因素而把载入延迟提升到85s/1000条甚至更高. 效果较差. 尝试2: 使用PreparedStatement,该方法需要预先给定insert操作的“格式”. 实测用这种方式插入的效率为每秒钟数十行. 注意…
DELIMITER $$CREATE DEFINER=`root`@`192.168.2.254` PROCEDURE `pjzzspdz_fpmx_initdata12101245`()BEGIN #其中走完一次循环可产生15条数据,单天数据量40w 因此日期增量值为40w/15=26667 ,总的数据量为 5000w,故外循环为5000w/15=3333333    DECLARE my_count INT DEFAULT 1;    DECLARE my_jqbh INT DEFAULT…
双重循环插入 DELIMITER ;; CREATE PROCEDURE test_insert() BEGIN DECLARE a INT DEFAULT 1; DECLARE b TINYINT DEFAULT 1; WHILE (a <= 100) DO -- repeat SET a = a + 1; -- select a; WHILE (b <=20) DO insert into school_sp_mj(school_id,mojor_id,status) values(a,b…
shell脚本获取mysql插入数据自增长id的值 在shell脚本中我们可以通过last_insert_id()获取id值,但是,需要注意的是,该函数必须在执行插入操作的sql语句之后,立即调用,否则获取的值就为0,LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,在向表b插入数据,LAST_INSERT_ID会改变.当然还有其他方法: 1. select max(id) from tablename: 2. select @@IDENTITY; 3. SHOW TAB…
mysql批量删除大量数据 假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条, 直接执行 DELETE FROM syslogs WHERE statusid=1 会发现删除失败,因为lock wait timeout exceed的错误. 因为这条语句所涉及的记录数太多,因此我们通过LIMIT参数分批删除,比如每10000条进行一次删除,那么我们可以利用 MySQL这样的语句来完成: DELETE FROM s…
MySQL批量导入Excel数据 1.确定需要导入数据的表名称以及字段,然后在新建的Excel表中,按照表字段正确排序:(注:(Excel文件的名称最好和数据库的名称一致,sheet表的名字最好和表名称一致,方便需要导入多张表数据时一一对应)) 2.在Excel表中,正确填写需要导入的数据,一行数据对应着数据库表中的一行记录:(注:各个字段的格式要求需要和数据库中的限制一样,避免出现差错) 3.收集好需要导入的数据后,点击保存.(注:导入的时候,Excel文件处于打开状态) 4.选中需要导入数据…