If there are 1000 connected clients on the site making requests to MySQL, then there are 1000 MySQL connections?
Not necessarily. Even if your database server supports one thousand connections simultaneously making requests, it would be a great waste of resources if these requests were asking for equal data.
For example, if your site receives 1000 requests for data over a period of time, it is likely that many different requests are asking for the same data. It is still quite probable that during this certain period of time these data have not been modified.
Considering this, it becomes a waste of resources, consult the bank looking for something already consulted previously and that has not changed.
The solution to this type of situation is the caching of the data.
A database server with caching deployed, stores in memory the response of each new query as it is requested, so that a similar future request does not need to go to the search database the die. The data will already be available in memory and a new query only happens if a previously consulted data has been modified or if it has not been previously consulted and therefore is not in memory, it is not in cache .
So, on a server with caching system deployed, 1000 requests mean 1000 queries only if they ask for different data.