• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MYSQL制作千万级测试数据_mysql

mysql 搞代码 7年前 (2018-06-07) 164次浏览 已收录 0个评论

mysql打造千万级测试数据

为了更好的测试MYSQL性能以及程序优化,不得不去制作海量数据来测试。我这里的方法就是直接用uuid函数进行分配每条数据的不同内容。

 

1.首先创建测试表(card表)

CREATE TABLE `card` (    `card_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',    `card_number` varchar(100) DEFAULT NULL COMMENT '卡号',    PRIMARY KEY (`card_id`)  ) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC

 

2.创建MYSQL存储过程

DROP PROCEDURE IF EXISTS proc1; DELIMITER $$ SET AUTOCOMMIT = 0$$ CREATE  PROCEDURE proc1() BEGIN DECLARE v_cnt DECIMAL (10)  DEFAULT 0 ; dd:LOOP           INSERT  INTO card (card_number) VALUES (UUID());                   COMMIT;                     SET v_cnt = v_cnt+1 ;                            IF  v_cnt = 10000000 THEN LEAVE dd;                           END IF;          END LOOP dd ; END;$$ DELIMITER ;

 

3.调用存储过程,生成对应的测试数据

call proc1;

 我的机子大概是2分13秒的样子生成完毕,每个人的机子各有不同,生成的时间也会不一样。

 

4.来测试一下性能吧。

select * from card order by rand() limit 1;   //6.5秒查询完毕 select * from card where card_number like '%xxx%'; //3.7秒查询完毕

在这样的海量数据情况下,如果用到模糊查询,那肯定会很慢,一般建议用全文检索引擎来替代(如Sphinx),查询速度就完全解决。 

 

可以参考此文:

使用Sphinx更好地进行MySQL搜索

 

欢迎大家阅读《MYSQL制作千万级测试数据_mysql,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MYSQL制作千万级测试数据_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址