サーバにSSD2
実際に解析のディスクに使ってみた。環境は前回と一緒で、違うのは
という条件で比較したのだけど、似たり寄ったりな感じになってしまった。
CREATE DEFINER=`aaaa`@`localhost` PROCEDURE `replace_markov`(IN nows VARCHAR(32), IN nexts VARCHAR(32)) BEGIN DECLARE mid INT; DECLARE mcnt INT; DECLARE cnt INT; select markov.id, markov.count,count(*) into mid,mcnt,cnt from markov where markov.now=nows and markov.next=nexts; if cnt > 0 then update markov set count = mcnt+1 where markov.id = mid; else insert into markov(now,next,count) VALUES(nows,nexts,1); end if; END
みたいな感じで、もし{(nows, nexts):個数}が存在したら個数を1足す、存在しなければinsertするSQLをストアドプロシージャで実行する。ちなみにcntは1しかいかない・・はず。
SQLの処理対象テーブルは約100万件。約130MB。これに(now,nexts)の入力で1分間回したときの実行回数を比較した。