今天用jmeter对mysql的事务方法进行压力测试的时候,发现事务中的插入语句有些执行成功了,有些则执行失败了,很是不解,希望能有高高手帮忙解惑一下。
下面我放出数据表的信息和整个操作的流程,以及遇到问题后我发现的一些对比信息。
数据库表seckill,我发现问题的关键可能在于start_time和end_time的比较,因此这两个字段的类型是比较关键的,都是timestamp类型:
jmeter中的线程设置:开启1个线程,执行100次请求:
请求方法的执行过程(我觉得问题是出在了killTime变量,因为我传入的是java.util.Date类型,存储过程中对应此变量的类型是timestamp):
然后是存储过程中的事务执行了,每一次错误的返回都是出在这个update语句上,基本上每次100次请求,update执行成功的数量只占了4、5成:
但是,当我把条件语句修改成start_time <= kill_time和end_time>=kill_time,成功率是百分之百,这个是我发现的比较关键的地方了,老哥们有什么想法吗?
下面我放出数据表的信息和整个操作的流程,以及遇到问题后我发现的一些对比信息。
数据库表seckill,我发现问题的关键可能在于start_time和end_time的比较,因此这两个字段的类型是比较关键的,都是timestamp类型:
jmeter中的线程设置:开启1个线程,执行100次请求:
请求方法的执行过程(我觉得问题是出在了killTime变量,因为我传入的是java.util.Date类型,存储过程中对应此变量的类型是timestamp):
然后是存储过程中的事务执行了,每一次错误的返回都是出在这个update语句上,基本上每次100次请求,update执行成功的数量只占了4、5成:
但是,当我把条件语句修改成start_time <= kill_time和end_time>=kill_time,成功率是百分之百,这个是我发现的比较关键的地方了,老哥们有什么想法吗?