justkt
justkt

Reputation: 14766

How to Intentionally Create a Long-Running MySQL Query

I know this is an odd question to ask, but I'd like to find out if there is a MySQL query I can create without already having millions of rows in my database that will consume resources and run for a long time. My ultimate goal is to test my application in cases of resource contention and make sure that my methods for handling failure (specifically server timeout) are correct.

If there another way I can test this without creating and executing a high-resource query, I'd appreciate hearing that as well.

Upvotes: 23

Views: 11546

Answers (3)

bersling
bersling

Reputation: 19292

If you need them to run for a bit, but not that long, then try

select benchmark(1000000, md5('when will it end?')); -- around 0.3s
select benchmark(10000000, md5('when will it end?')); -- around 3s
select benchmark(100000000, md5('when will it end?')); -- around 30s

Upvotes: 4

user287466
user287466

Reputation:

For those wondering how to achieve a similar operation for MS SQL Server (not MySQL), use WAITFOR DELAY '02:00' if you want to test timeouts.

Upvotes: 3

mhitza
mhitza

Reputation: 5715

I assume you could use benchmark() for this, although that isn't the scope of it.

select benchmark(9999999999, md5('when will it end?'));

Upvotes: 40

Related Questions