mysql生成千万级测试数据
为了更好的测试MYSQL性能以及程序优化,不得不去制作海量数据来测试。
之前用存储过程的方法。生成测试数据。特别慢。
所以改为在服务端调用DB生成
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.
<?php
ini_set('max_execution_time', '0'); //mysql执行时间
@mysql_pconnect("localhost","root","root") or die('connect failed');
@mysql_select_db("test") or die('select db failed');
//这一步很重要 取消mysql的自动提交
mysql_query('SET AUTOCOMMIT=0;');
mysql_query('set names utf8');
$begin = time();
$count = 1;
for($i=1;$i<=10000000;$i++){
mysql_query("INSERT INTO `card` (`card_id`, `card_name`) VALUES ($i, 'test_name'')");
//插入20W提交一次
if($i%200000=='0'){
mysql_query("commit");
}
}
$end = time();
echo "用时 ".($end-$begin)." 秒 <hr/>";

3196

被折叠的 条评论
为什么被折叠?



