When we say we have a "database connection" or a "connection pool that has several connections open", on the technical level, what are we meaning actually?
My understanding is:
A database connection is a link to a thread running in the database process that is blocked and waiting for an input from another thread in another process.
Is this the right definition?
So when I have MySQL running on a computer and a Java application running on some other computer (or same computer; it does not really matter..) and when I do something like:
conn.open();
to open a database connection...
Will the MySQL process create a new thread for me and block that thread and start listening for input?
What about the client side? What happens if I do not close the connection?