先介绍一个关键字的使用: delimiter 定好结束符为"$$",(定义的时候需要加上一个空格) 然后最后又定义为";", MYSQL的默认结束符为";" 如何通过mysql命令行批量插入100条数据呢,可以在代码里实现,也可以通过命令行,也就是通过存储过程: delimiter $$create procedure myproc ()begindeclare num int ;set num = 1 ;while num < 100 d
1.创建表 2.创建存储过程 CREATE PROCEDURE user()INSERT INTO user(name,sex) VALUES ('1111','1'); 3.创建定时器 CREATE EVENT IF NOT EXISTS eventJob ON SCHEDULE EVERY 1 SECOND ON COMPLETION PRESERVEDO CALL user(); 4. 开启事件test_eventalter event eventJob on completion pre
提高MYSQL百万条数据的查询速度 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 3.应尽量避免在 where 子句中
今天需要将一个含有1000万条数据的文本内容插入到数据库表中,最初自然想到的是使用Insertinto '表名'values(),(),()...这种插入方式,但是发现这种方式对1000万条数据量的情况,明显效率低下,于是选用了直接将文本内容导入数据表的方法: LOADDATA LOCAL INFILE '/home/xyw/result.txt' INTO TABLEdomainlib_tmp(domain); 这种方式可以将本地的数据文件'result.txt'直接导入到domainlib_
本例代码下载:https://files.cnblogs.com/files/xiandedanteng/InsertMillionComparison20191012.rar 我的数据库环境是mysql Ver 14.14 Distrib 5.6.45, for Linux (x86_64) using EditLine wrapper 这个数据库是安装在T440p的虚拟机上的,操作系统为CentOs6.5. 插入一千万条数据,一次执行时间是4m57s,一次是5m. 数据表的定义是这样的: C
方法一:存储过程 1.存储过程如下: delimiter $$ DROP PROCEDURE IF EXISTS data CREATE PROCEDURE data(in i int) BEGIN DO INSERT INTO goods VALUES('','锤子手机',i); ; END WHILE; end $$ ; call proll(@id); 2.执行存储过程前将表中的数据清空 3)存储过程执行的时间需要:0.312秒 4)执行存储过程后,查看表中数据,如下图: 问题:goods