1 编写目的
1. 测试 replace into 引发死锁
2. 测试 replace 和INSET INTO *** ON DUPLICATE KEY UPDATE *** 性能差
2 数据库环境说明
1、 数据库系统:
名称:Mysql 5.5.31
引擎:innodb
字符集:UTF8
安装方式:源码编译安装
2、 数据库部署环境:
软硬件环境:Linux(CentOS-6.2-x86_64)
3 测试工具
Mysql 自带 Mysqlslap
4 测试过程
所有操作前重启mysql,避免缓存。
测试表:
CREATE TABLE`test_replace_into` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`wechat_init_code` int(11) NOT NULL,
`used` varchar(50) DEFAULT '0',
`expire` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `ii` (`wechat_init_code`)
) ENGINE=InnoDBDEFAULT CHARSET=utf8;
insert_on_duplicate.sql:
SET@mm=ROUND(RAND()*100000);
SET@nn=ROUND(RAND()*100000);
INSERT INTOtest.`test_replace_into`(wechat_init_code,used,expire) VALUES (@mm,@nn,@nn) ONDUPLICATE KEY UPDATE used =@nn,expire=@nn ;
replace_into.sql:
SET@mm=ROUND(RAND()*100000);
SET @nn=ROUND(RAND()*100000);
REPLACE INTOtest.&