Chinaunix首页 | 论坛 | 博客
  • 博客访问: 129504
  • 博文数量: 37
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-02 01:04
个人简介

CU

文章分类

全部博文(37)

文章存档

2016年(33)

2015年(4)

我的朋友

分类: Mysql/postgreSQL

2016-03-19 19:37:18

測试一下mysql单表数据达到1000W条以上时增删改查的性能。因为没有现成的数据,因此自己构造

点击(此处)折叠或打开

  1. --表结构
  2. CREATE TABLE `fortest` (
  3.   `ID` INT(30) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  4.   `IP` VARCHAR(32) NOT NULL,
  5.   `OID` VARCHAR(15) DEFAULT NULL);
  6.     
  7.     --存储过程    
  8. delimiter $$
  9.         CREATE DEFINER=`root`@`localhost` PROCEDURE `autoinsert`(IN IP_NUM INT, IN OID_NUM INT)
  10. BEGIN
  11.   DECLARE iIP INT DEFAULT 0 ;
  12.   DECLARE iOID INT DEFAULT 0 ;
  13.    WHILE(iIP < IP_NUM)
  14.     DO
  15.       SET iOID = 0;
  16.       WHILE(iOID<OID_NUM)
  17.       DO
  18.         SET @mySql=CONCAT("INSERT INTO fortest (IP, OID) VALUES(CONCAT((ROUND(RAND() * 255) + 1),'.',(ROUND(RAND() * 255) + 1),'.',(ROUND(RAND() * 255) + 1),'.',(ROUND(RAND() * 255) + 1)),ROUND(RAND()*100)+1);");
  19.         PREPARE stmt FROM @mySql;
  20.         EXECUTE stmt;
  21.         DEALLOCATE PREPARE stmt;
  22.         SET iOID = iOID+1;
  23.       END WHILE;
  24.      SET iIP = iIP+1;
  25.     END WHILE;
  26.   END$$
  27. DELIMITER ;

  28. call autoinsert(10,10);


  29. --原文有点麻烦,多了个循环,这是自己写的
  30. delimiter $$
  31. CREATE DEFINER=`root`@`localhost` PROCEDURE `autoinsert2`(IN IP_NUM INT)
  32. begin
  33. declare iIP int default 0;
  34. while(iIP<IP_NUM)
  35. do
  36.  SET @mySql=CONCAT("INSERT INTO fortest (IP, OID) VALUES(CONCAT((ROUND(RAND() * 255) + 1),'.',(ROUND(RAND() * 255) + 1),'.',(ROUND(RAND() * 255) + 1),'.',(ROUND(RAND() * 255) + 1)),ROUND(RAND()*100)+1);");
  37.  PREPARE stmt FROM @mySql;
  38.  EXECUTE stmt;
  39.  DEALLOCATE PREPARE stmt;
  40.  SET iIP = iIP+1;
  41.  end while;
  42.  end $$
  43.  delimiter ;

阅读(2209) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~