我有一张桌子
create table slap(ind char(4) primary key, name varchar(50));我想用随机插入和删除序列来测试这一点,查询将由一个包含10000个inserts/delete语句的sql文件提供,如下所示-
insert into slap values('gdvx', 'gdvx');
delete from slap where ind='gdvx';
insert into slap values('sbkq', 'sbkq');
delete from slap where ind='sbkq';
insert into slap values('gdmb', 'gdmb');
insert into slap values('vnka', 'vnka');
insert into slap values('mytw', 'mytw');
delete from slap where ind='gdmb';我正在运行mysqlslap命令,作为
mysqlslap --concurrency=50 --iterations=1 --query=./slaptest.sql --create-schema=slaptest -uroot -p当我认为每个线程从文件一开始就执行查询时,我会得到一个重复的键插入错误,但是我希望线程从这个文件中依次执行查询,即第一个线程执行第一个语句和第二个线程第二个语句等等。
请告诉我mysqlslap是否支持这样的事情?
谢谢
发布于 2018-05-08 20:04:52
mysqlslap不会做您想做的事情:跳过一些基于线程号的行:
但是:
您可以将其放入SQL脚本中,并获得4个字母数字字符的随机字符串以供使用。
set @randomval := substring(to_base64(
concat(char(round(rand()*25)+97),
char(round(rand()*25)+97),
char(round(rand()*25)+97),
char(round(rand()*25)+97))),1,4)
insert ignore into slap values(@randomval , @randomval );
delete from slap where ind=@randomval ;按要求重复这些行的次数。
如果您的ind键中只有四个字符,您将得到一些冲突:一些随机值出现相同的结果。因此出现了insert ignore。
https://stackoverflow.com/questions/49927044
复制相似问题