ufk*_*ufk 0 mysql benchmarking stored-procedures
我正在尝试对存储过程进行基准测试.
select benchmark(100000000,(select 1));
Run Code Online (Sandbox Code Playgroud)
这个基准有效
但以下基准不会:
do benchmark(1000,(call test_login_user('a')));
Run Code Online (Sandbox Code Playgroud)
它会产生以下错误:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'call xpofb_login_user('a')))' at line 1
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这个问题?
你不能用benchmark()做到这一点,但是你可以创建一个存储过程来完成它.
这是一个例子:
delimiter $$
create procedure benchmark_test_login_user (p_username varchar(100),
p_count int unsigned)
begin
declare v_iter int unsigned;
set v_iter = 0;
while v_iter < p_count
do
call test_login_user(p_username);
set v_iter = v_iter + 1;
end while;
end $$
delimiter ;
call benchmark_test_login_user('a',1000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4368 次 |
| 最近记录: |