Chinaunix首页 | 论坛 | 博客
  • 博客访问: 96819
  • 博文数量: 25
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 316
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-02 00:39
文章分类

全部博文(25)

文章存档

2013年(25)

我的朋友

分类: Mysql/postgreSQL

2013-04-22 15:28:35

可以用mysql内存表代替传统的表,根据并发测试,性能可以提高较多,查询由0.62s减少到0.18s,而且每个session的结果集可以共享,避免了第一次的物理读,减少os io,
而且表的大小适合内存表的使用

1.建立内存表,如

 CREATE TABLE `wdtmfw` (
  `GS` mediumint(6) unsigned NOT NULL DEFAULT '0',
  `QSH` bigint(13) NOT NULL DEFAULT '0',
  `ZZH` bigint(13) NOT NULL DEFAULT '0',
  `FPSJ` datetime NOT NULL DEFAULT '2007-01-01 00:00:00',
  `lrsj` datetime NOT NULL DEFAULT '2007-01-01 00:00:00',
  `lb` int(1) NOT NULL DEFAULT '1',
  `bm` mediumint(7) unsigned NOT NULL DEFAULT '0',
  `fpry` varchar(18) NOT NULL,
  `ywy` mediumint(7) NOT NULL DEFAULT '0',
  `xgbz` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`GS`,`QSH`,`ZZH`,`lb`,`bm`),
  KEY `idx01_wdtmfw` (`QSH`,`ZZH`)
) ENGINE=MEMORY DEFAULT CHARSET=utf8  

其中内存表使用的内存大小由
max_heap_table_size控制,要却表该参数比表使用的空间大




2.关于重启后数据清空的解决方法

可以使用形如mv的方法,定时增量更新内存表,可以写过程+event scheduler来实现
过程如

begin

insert into wdtmfw_new select * from wdtmfw a on duplicate key update fpsj=a.fpsj,lrsj=a.lrsj,fpry=a.fpry,ywy=a.ywy,xgbz=a.xgbz;

end;
/

可以设置几秒同步一次,因为内存表所以比较,插入速度很快


 
3.测试报告(100,200,500,1000用户使用内存表并发查询)

Statistics for the Userload:
User Load TPS kBPS Avg. Response Time (sec) Avg. Transaction Time (sec) Total Executions Total Rows Total Errors
100 62.51 4.000 0.271 0.271 500 1000 0

      

Statistics for the Userload:
User Load TPS kBPS Avg. Response Time (sec) Avg. Transaction Time (sec) Total Executions Total Rows Total Errors
200 142.91 9.146 0.179 0.179 1000 2000 0

     
 
Statistics for the Userload:
User Load TPS kBPS Avg. Response Time (sec) Avg. Transaction Time (sec) Total Executions Total Rows Total Errors
500 128.32 8.212 1.311 1.311 2500 5000 0

     
 
Statistics for the Userload:
User Load TPS kBPS Avg. Response Time (sec) Avg. Transaction Time (sec) Total Executions Total Rows Total Errors
1000 142.88 9.145 3.065 3.065 5000 10000 0   
阅读(6088) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~