MySQL 5.5 使用 Event定期自动维护/执行Procedure

通过对MySQL数据库进行测试,比较了MyISAM和InnoDB两种存储引擎在高并发插入操作下的性能表现。测试结果显示,在无需事务处理的情况下,MyISAM引擎的磁盘I/O负载较低。

转载自http://gooderlee.iteye.com/blog/1179221

 

最近有个项目,对于数据库的并发性要求很高,对于事物,Rollback没有要求,同时数据库升级到5.5。所以,闲来没事儿,就拿起数据库来看看引擎性能。

 

我们通过创建一个 Procedure,让引擎每秒插入50条数据到 MySQL,然后我们通过修改表的引擎来查看IO的情况。

 

我们采用如下表结构

 

Sql代码   收藏代码
  1. DROP TABLE IF EXISTS `test`.`t`;  
  2. CREATE TABLE  `test`.`t` (  
  3.   `id` int(10) unsigned DEFAULT '0',  
  4.   `namevarchar(45) DEFAULT 'default',  
  5.   `timetimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP  
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;  

 

 

1、创建一个 Procedure:

 

Sql代码   收藏代码
  1. delimiter $$  
  2. create procedure loop_test()  
  3. begin  
  4.     set @x=1;  
  5.     while @x<=50 do  
  6.     insert into test.t (TIMEvalues(now());  
  7.     end while;  
  8. end;  
  9. $$  

 

 

2、创建一个EVENT事件,每秒执行Procedure

 

Sql代码   收藏代码
  1. CREATE EVENT test_insert  
  2. ON SCHEDULE EVERY 1 SECOND   
  3. DO call loop_test;  

 

3、打开事件调度器,true为打开

 

Sql代码   收藏代码
  1. SET GLOBAL event_scheduler=TRUE  

 

执行了这句代码之后就OK了

 

 

测试结果:

默认MySQL配置下面,通过测试发现,使用INNODB的方式 数据库写入频繁,而MyISAM没有太频繁的磁盘IO操作。

 

在我们这个项目中,无需事物,回滚和送耦合的程序架构中还是采用MyISAM好了!

转载于:https://www.cnblogs.com/souris/archive/2012/04/14/2446592.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值