PHP生成WordPress测试数据

1
1062

记得很早之前写主题的时候,需要大量的测试数据,没有办法,只好将数据库的记录复制。复制的语句为:

1
insert into `wp_posts` (`post_author`,`post_date`,`post_date_gmt`,`post_content`,`post_title`,`post_excerpt`,`comment_status`,`ping_status`,`post_password`,`post_name`,`post_parent`,`post_type`,`post_mime_type`,`comment_count`) select `post_author`,`post_date`,`post_date_gmt`,`post_content`,`post_title`,`post_excerpt`,`comment_status`,`ping_status`,`post_password`,`post_name`,`post_parent`,`post_type`,`post_mime_type`,`comment_count` from  `wp_posts`

因为wp_posts中ID为自增量,所以只管复制就行,上面的语句执行的结果为wp_posts记录翻倍,如果执行多次那么记录为: 数据库原始记录 * 2n n为执行次数。

我本地测试的数据库原始记录为480条,执行上述SQL则为480 * 2

本文转自http://onedou.com[OneDou Blog] 声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0共享协议. 转载请注明http://onedou.com/[OneDou Blog]

SQL_TEST_1

当我执行了几次之后,插入163840条记录,截图如下:

SQL_TEST_2

于是顺便测了一下WordPress的速度,后台设置首页展示1000篇文章。测试数据如下:

SQL_TEST_3

加载首页的时候明显感到耗时,另外页面过长,浏览器也有卡顿。而32万多条的数据导出则为100M多,压缩之后仅1M多。

SQL_TEST_4

其实还可以写个循环来生成大量的数据,而不用手动执行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
 /*
  @FileName:sql_test_data.php
  @Aurthor: OneDou [http://oneodu.com]
  @LastModifed:2013-7-24 下午19:48:38
  @Charset:UTF-8
 */
require_once('wp-config.php');
$lnk=mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die ('Not connected : ' . mysql_error());
 
for($a=0;$a<300;$a++){
   if($a==0)
         $sql = "INSERT INTO `wp_posts` VALUES
('', 1, '2010-05-23 10:07:10', '2010-05-23 10:07:10', '欢迎使用 WordPress。这是系统自动生成的演示文章。编辑或者删除它,开始您的博客!http://onedou.com', 'Hello world!', '', 'publish', 'closed', 'closed', '', 'hello-world', '', '', '2011-02-08 19:37:57', '2011-02-08 19:37:57', '', 0, 'http://localhost/wp/?page_id=1', 0, 'post', '', 1)";
   else
       $sql.=",('', 1, '2010-05-23 10:07:10', '2010-05-23 10:07:10', '欢迎使用 WordPress。这是系统自动生成的演示文章。编辑或者删除它,开始您的博客!http://onedou.com', 'Hello world!', '', 'publish', 'closed', 'closed', '', 'hello-world', '', '', '2011-02-08 19:37:57', '2011-02-08 19:37:57', '', 0, 'http://localhost/wp/?page_id=1', 0, 'post', '', 1)";
 
}
mysql_query($sql);
for($b=0;$b<10;$b++){
 
	$sql= "insert into `wp_posts` (`post_author`,`post_date`,`post_date_gmt`,`post_content`,`post_title`,`post_excerpt`,`comment_status`,`ping_status`,`post_password`,`post_name`,`post_parent`,`post_type`,`post_mime_type`,`comment_count`) select `post_author`,`post_date`,`post_date_gmt`,`post_content`,`post_title`,`post_excerpt`,`comment_status`,`ping_status`,`post_password`,`post_name`,`post_parent`,`post_type`,`post_mime_type`,`comment_count` from  `wp_posts` ";
 
	mysql_query($sql);
 
	echo $b."\n";
}
?>

将上述sql_test_data.php放在Wordpress根目录尽情折腾吧。

附上一张图:

SQL_DATA

who can tell me the capacity of generating 1048576000 records? 😈

1条评论

发表回复

41 − 39 =