免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2828 | 回复: 0

PostgreSQL 与 MySQL 性能大测试(第四节) [复制链接]

论坛徽章:
0
发表于 2009-05-15 10:40 |显示全部楼层

  1. 本测试文档,采用GPL 协议,如转载请注明出处 : [url]http://blog.bowenye.com/[/url]
  2. 如商业,请联系本人  QQ : 84437129
复制代码


第四节, 破坏性测试,要把表搞弄,不易,这两天测试如何能让大家都看得把表搞坏的机率.
决定用一些BT的方法,所以下在面的测试基本都是VM里面进行,如果你出现硬件在测试过程中破坏的问题.
请不要找我,因为我也只是测试的,在没有足够明白下面测试的朋友,请注意了.
为了增加出现表坏的机率,请把前面所用过的表都多增加一两个KEY,像下面:


  1. uchome_docomment_innodb | CREATE TABLE `uchome_docomment_innodb` (
  2.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  3.   `upid` int(10) unsigned NOT NULL DEFAULT '0',
  4.   `doid` mediumint(8) unsigned NOT NULL DEFAULT '0',
  5.   `uid` mediumint(8) unsigned NOT NULL DEFAULT '0',
  6.   `username` char(15) NOT NULL DEFAULT '',
  7.   `dateline` int(10) unsigned NOT NULL DEFAULT '0',
  8.   `message` text NOT NULL,
  9.   `ip` char(20) NOT NULL DEFAULT '',
  10.   `grade` smallint(6) unsigned NOT NULL DEFAULT '0',
  11.   PRIMARY KEY (`id`),
  12.   KEY `doid` (`doid`),
  13.   KEY `upid` (`upid`),
  14.   KEY `username` (`username`)
  15. ) ENGINE=InnoDB
复制代码



测试方式在之前的代码加个POST参数,作用是同时打开四个页面而根据不同参数来执行不同的操作
操作方式就是select insert update delete 四个.需要FOR循环10W次,当然一万都可以,只不过
是为了有足够的时间来进行"破坏活动",
过程:
1.同时打开四个页面,用参数来确定操作方式
2.在运行一段时间之后,突然把VM关了

结果很简单,经过多次测试.MyISAM 50% 上面机率会出现下面的错误,而PostgreSQL 和InnoDB
没发现错误




  1. mysql> INSERT INTO uchome_docomment (upid ,doid ,uid ,username ,dateline ,message ,ip ,grade)VALUES (
  2.     ->  '1', '2', '1', 'myname', '1234567890', 'messagemes
  3.     sagemessagemessagemessagemessagemessagemessagemessage
  4.     messagemessagemessagemessagemessage', '127.0.0.1', '2'
  5.     -> );
  6. ERROR 1062 (23000): Duplicate entry '1107639' for key 'PRIMARY'
  7. mysql> repair table uchome_docomment;
  8.   +------------------------+--------+----------+----------------------------------------------+
  9. | Table                  | Op     | Msg_type | Msg_text                                     |
  10. +------------------------+--------+----------+----------------------------------------------+
  11. | bowen.uchome_docomment | repair | warning  | Number of rows changed from 741633 to 741567 |
  12. | bowen.uchome_docomment | repair | status   | OK                                           |
  13. +------------------------+--------+----------+----------------------------------------------+
  14. 2 rows in set (38.02 sec)

  15. ...

  16. mysql> INSERT INTO uchome_docomment (upid ,doid ,uid ,username ,dateline ,
  17. message ,ip ,grade)VALUES (  '1', '2', '1', 'myname', '1234567890', 'messag
  18. emessagemessagemessag
  19. emessagemessagemessagemessagem
  20. essagemessagemessagemessagemessagemessage', '127.0.0.1', '2' );
  21. ERROR 1062 (23000): Duplicate entry '1135730' for key 'PRIMARY'
  22. mysql> select id from uchome_docomment limit 1;
  23. +--------+
  24. | id     |
  25. +--------+
  26. | 100080 |
  27. +--------+
  28. 1 row in set (0.00 sec)

  29. mysql> delete from uchome_docomment where id=100080;
  30. ERROR 126 (HY000): Incorrect key file for table './bowen/uchome_docomment.MYI'; try to repair it
复制代码



这节是破坏性测试,操作简单,结果也简单,不过为了成功,倒花费了不少时间,当然不一定是关VM就出现问题
可以试试,在没关VM情况下,突然关闭页面,也会出现表破坏的现像,不过成功性就太低了,不利于发现问题,当然如果你拥有过一个网站
,你应该会试过,网站运行过程中,突然表坏的现像,差不多都出现上面的提示,一般来说,只要用myisamchk,就可以修复的了.
OK,还有下一节,而一下节会是啥测试呢,等等,哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP