最近需要测试一下mysql单表数据达到1000W条以上时增删改查的性能。由于没有现成的数据,因此自己构造,本文只是实例,以及简单的介绍。
首先当然是建表:
CREATE TABLE `fortest` (
`ID` INT(30) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`IP` VARCHAR(32) NOT NULL,
`OID` VARCHAR(15) DEFAULT NULL)
其次,构建存储过程:
DELIMITER $$
USE `插入表所在的数据库名字`$$
DROP PROCEDURE IF EXISTS `autoinsert`$$
CREATE DEFINER=`root`@`192.168.137.10` PROCEDURE `autoinsert`(IN IP_NUM INT, IN OID_NUM INT)
BEGIN
DECLARE iIP INT DEFAULT 0 ;
DECLARE iOID INT DEFAULT 0 ;
WHILE(iIP < IP_NUM)
DO
SET iOID = 0;
WHILE(iOID<OID_NUM)
DO
SET @mySql=CONCAT("INSERT INTO fortest (IP, OID) VALUES(CONCAT((ROUND(RAND() * 255) + 1),'.',(ROUND(RAND() * 255) + 1),'.',(ROUND(RAND() * 255) + 1),'