Each connection can run a maximum of one request at a time and does so in a single thread. The server opens one thread for each request.
Usually, I hope the requests do not block each other. However, depending on the engine and requests, they may. MySQL has a lot of locks, as detailed in the manual.
However, if they do not block each other, they can still slow down each other, consuming resources. I / O operations are a special source of these slowdowns. If your data does not fit into memory, you really should limit the number of concurrent requests for what your I / O subsystem can handle, or everything will be very bad. Dimension is the key.
I would say that if 500 requests are started immediately (and DO NOT wait for locks), you may not get the best value from your hardware (do you have 500 cores? How many threads are waiting for IO?)
Markr
source share