参考:https://www.iteye.com/blog/825635381-2161290 场景1.创建1万个table,每个table种插入1条记录 DELIMITER $$ CREATE DATABASE `lr_test` $$ USE `lr_test` $$ DROP PROCEDURE IF EXISTS `cyc` $$ CREATE PROCEDURE `cyc`( ) BEGIN DECLARE i INT; DECLARE MAX INT DEFAULT 10000; D…
#创建测试表 DROP TABLE IF EXISTS test.test; CREATE TABLE test.test( id int(10) not null auto_increment, a int(10) not null, b int(10) not null, c int(10) not null, PRIMARY key (`id`) )ENGINE INNODB DEFAULT CHARSET utf8 COMMENT '测试表'; #清空数据 TRUNCATE table…
最近需要测试一下mysql单表数据达到1000W条以上时增删改查的性能.由于没有现成的数据,因此自己构造,本文只是实例,以及简单的介绍. 首先当然是建表: [sql]view plaincopy CREATETABLE `fortest` ( `ID` INT(30) UNSIGNED NOTNULL AUTO_INCREMENT PRIMARYKEY, `IP` VARCHAR(32) NOTNULL, `OID` VARCHAR(15) DEFAULTNULL) 其次,构建存储过程: [sq…
创建随机字符串函数,便于创建名称 DROP function if EXISTS rand_string; #创建一个指定字符个数的函数 create function rand_string(n INT) #返回字符串,注意:此处关键字是returns 而不是return returns varchar(255) BEGIN #定义一个临时变量,给变量赋值'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' DECLARE chars_s…
一.概述 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集.其存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它. 存储过程是数据库中的一个重要对象. 二.存储过程的特点 能完成较复杂的判断和运算 可编程行强,灵活 SQL编程的代码可重复使用 执行的速度相对快一些 减少网络之间的数据传输,节省开销     三.创建一个测试数据的存储过程 delimiter $$creat…
--批量插入数据的sql语句 delimiter $$ DROP PROCEDURE IF EXISTS `test.sp_insert_batch` $$ CREATE DEFINER =`root`@`localhost` PROCEDURE `sp_insert_atch`(IN number INT) BEGIN DECLARE i INT ; ; #such ,, WHILE i <= number DO ) THEN *rand()),')'); ELSEIF MOD(i,) THE…
记一次大批量数据的多进程同步 背景:因为公司的用户标识不完整,所以需要从集团同步一次用户标记数据,用户数据来源是微信,数量级为一百五十万,集团用户数量级为六百万 方案确定下来是集团开了一个查询接口,访问没有频率并发限制,数量级在那呢,我们遍历公司的用户,去查询这些用户的标识来更新 项目使用了laravel,就写了一个命令行脚本,开15个进程去跑 由于时间关系使用了PHP的pcntl_fork实现多进程 核心代码如下: 主要流程是: 首先主进程分配userid给各个子进程,这里使用了redis队列…
之前都是在mysql的存储过程中插入数据,毕竟mysql语法函数有限,很多都有限制.突然想到学了python正好可以练练手.首先需要安装pymysql模块包(模块包安装请自行百度) pip install pymysql mysql语句的符号一定要看清楚,否则运行不生成数据,运行结果又没有错误提示很难定位问题,博主就因为一个符号浪费大量的时间.不多说了,直接上代码(注意符合,注意符合,注意符合!!!) #encoding:utf-8 import pymysql import time impo…
###################总结########### 视图是一个虚拟表(非真实存在) 是跑在内存中的表,真实表是在硬盘上的表 使用视图我们可以把查询过程中的临时表摘出来,保存下来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可 缺点:视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便 ###创建2张表 create table course(cid i…
一 操作实例 首先登录mysql: 使用source命令,从命令行执行sql脚本,创建表: 创建第一个存储过程: 事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码: 调用一下,成功了: 创建一个带输出参数的存储过程,返回book表的记录数:创建成功: 如下的调用语句失败: 先在命令行用set定义一个变量:定义变量成功:后面的调用语句失败: 参数是放到括号里的:调用成功: select @s1,显示了@s1的当前值,为9,表的记录数: 调用时…