一组操作有插入也有更新。
第一次进行这组操作会很快。
紧接着进行第二次的时候,就很慢。
第三次又变快,第四次就慢。
也就是说。他会快一次,然后慢一次地交替进行不知道这是什么原因。
是不是上一次的操作留下了什么后遗症,导致紧接着的第二次变慢?
该怎么查找原因呢?
第一次进行这组操作会很快。
紧接着进行第二次的时候,就很慢。
第三次又变快,第四次就慢。
也就是说。他会快一次,然后慢一次地交替进行不知道这是什么原因。
是不是上一次的操作留下了什么后遗症,导致紧接着的第二次变慢?
该怎么查找原因呢?
没有开事务。
代码类似下面这样CREATE TEMPORARY TABLE IF NOT EXISTS midTb SELECT mail,sex,birthday,adcode FROM roster LIMIT 0 ;
TRUNCATE TABLE midTb;UPDATE `addInfo` SET `savePath`='/home/.../i2012.02.27_16.34.32_101_37.csv' WHERE `id` =37;LOAD DATA INFILE '/home/.../i2012.02.27_16.34.32_101_37.csv'
IGNORE INTO TABLE midTb
CHARACTER SET sjis
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\r\n"
(@c1,@c2,@c3,@c4)
SET `adcode`='abc',`mail`=@c1,`sex`=@c2,`birthday`=DATE_SUB('2012-01-01',INTERVAL @c4 YEAR) ;
INSERT INTO `roster` (mail,sex,birthday,adcode,addID)
SELECT mail,sex,birthday,adcode,37
FROM midTb
ON DUPLICATE KEY
UPDATE duplCnt = IF(`addID`=37,duplCnt+SIGN(duplCnt),-1)
,`addID`=37 ;
正常时是毫秒级别的。
CREATE TEMPORARY TABLE IF NOT EXISTS midTb SELECT sql_no_cache mail,sex,birthday,adcode FROM roster LIMIT 0 ;
TRUNCATE TABLE midTb;这样试试看。