thinkphp 生成海量文章数据表

当我们在需要学习MySQL优化时,需要一个海量表来进行测试,没一个海量的MySQL数据表怎么行,这时,可以通过下面的php代码来生成,简单易行。框架采用thinkphp3.2,示例代码如下,生成一千万的文章数据

一、创建数据表

CREATE TABLE `mass_articles` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(11) NOT NULL DEFAULT '' COMMENT '文章标题',
  `content` text NOT NULL COMMENT '文章内容',
  `created_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

二、生成一千万数据的php经典代码

程序运行中,请不要打扰";
        echo "

程序运行中,请不要打扰

"; echo "

程序运行中,请不要打扰

"; $model = M('Articles'); // 插入一千万条数据 $insert_num = 10000000; for($i = 0; $i < $insert_num; $i++){ // 确定文章标题随机中文字符串的长度,这里随机5到30个中文 $title_num = mt_rand(5,30); // 确定文章内容随机中文字符串的长度,这里随机20到500个字符 $content_num = mt_rand(20,500); $insert_title = ""; $insert_content = ""; for($j = 0; $j < $title_num; $j++){ // 每次取一个中文,拼接起来 $insert_title .= mb_substr($str, mt_rand(1,2495), 1, 'utf-8'); } for($n = 0; $n < $content_num; $n++){ // 每次取三个中文,拼接起来 $insert_content .= mb_substr($str, mt_rand(1,2495), 3, 'utf-8'); } // 定义批量插入数组 $insert = array(); $insert['title'] = $insert_title; $insert['content'] = $insert_content; $insert['created_time'] = time(); array_push($insert_arr,$insert); // 批量插入,每100个数据插入表,这里可以根据自己系统性能进行调整 if(count($insert_arr)%100 == 0){ $model->addAll($insert_arr); $insert_arr = array(); } } }

三、代码运行中的生成数据

thinkphp 生成海量文章数据表

四、运行后的数据

thinkphp 生成海量文章数据表

五、到mysql的data目录下查看,生成的数据

thinkphp 生成海量文章数据表

转载请标明原文链接: https://www.jianshu.com/p/066a4dbe36fd
更多精彩请访问个人博客:https://www.whmblog.cn/

你可能感兴趣的:(thinkphp 生成海量文章数据表)