← Back to team overview

maria-discuss team mailing list archive

Re: stored programs

 

You probably have either a faster CPU or bigger cache on your cpu.  How long does benchmark select 1 take?  You should find it is faster on your system too, right?

--Justin 

Sent from my iPhone

> On Mar 3, 2015, at 6:18 AM, Peter Laursen <peter_laursen@xxxxxxxxxx> wrote:
> 
> Your 3rd test case takes 2:02 in MariaDB 10.1 and 2:13 in MySQL 5.6 on my system (when otherwise idle) .
> 
> -- Peter
> 
>> On Tue, Mar 3, 2015 at 1:58 PM, Federico Razzoli <federico_raz@xxxxxxxx> wrote:
>> I made some quick test to show what I mean by "performance problem". Note that I'm not saying the the first and the second test cases should perform equally. But there is too much difference - see the conclusion.
>> 
>> 1)
>> 
>> MariaDB [test]> SELECT BENCHMARK(50000000, (SELECT 1));
>> +---------------------------------+
>> | BENCHMARK(50000000, (SELECT 1)) |
>> +---------------------------------+
>> |                               0 |
>> +---------------------------------+
>> 1 row in set (0.42 sec)
>> 
>> 2)
>> 
>> DELIMITER ||
>> CREATE FUNCTION f()
>>         RETURNS TINYINT
>> BEGIN
>>         RETURN 1;
>> END ||
>> DELIMITER ;
>> 
>> MariaDB [test]> SELECT BENCHMARK(50000000, (SELECT f()));
>> +-----------------------------------+
>> | BENCHMARK(50000000, (SELECT f())) |
>> +-----------------------------------+
>> |                                 0 |
>> +-----------------------------------+
>> 1 row in set (2 min 5.70 sec)
>> 
>> 3)
>> 
>> DELIMITER ||
>> CREATE FUNCTION f(x TINYINT)
>>         RETURNS TINYINT
>> BEGIN
>>         RETURN x;
>> END ||
>> DELIMITER ;
>> 
>> MariaDB [test]> SELECT BENCHMARK(50000000, (SELECT f(1)));
>> +------------------------------------+
>> | BENCHMARK(50000000, (SELECT f(1))) |
>> +------------------------------------+
>> |                                  0 |
>> +------------------------------------+
>> 1 row in set (3 min 35.20 sec)
>> 
>> -- Conclusions:
>> 
>> Times in seconds:
>> 
>> 0.42
>> 125.70
>> 215.20
>> 
>> I don't know which ratio would be acceptable, but the difference betweem a trivial query and a trivial function is too high.
>> Also, the difference between 2) and 3) is that the function in 3) accepts and returns a parameter. Again, the performance difference seems to me too high.
>> 
>> Regards
>> Federico
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Mailing list: https://launchpad.net/~maria-discuss
>> Post to     : maria-discuss@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~maria-discuss
>> More help   : https://help.launchpad.net/ListHelp
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~maria-discuss
> Post to     : maria-discuss@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~maria-discuss
> More help   : https://help.launchpad.net/ListHelp

Follow ups

References