Final answer:
Global buffers are never freed, thread buffers are freed when client disconnects, and operation buffers are freed when the operation ends.
Step-by-step explanation:
a) Global buffers such as the InnoDB buffer pool are allocated after the server starts, and are never freed. This means that once these buffers are allocated, they will remain in memory for the duration of the server's uptime.
b) Thread buffers are allocated when a client connects, and are freed when the client disconnects. These buffers are specific to each client connection and are released once the connection is terminated.
c) Buffers that are needed for certain operations are allocated when the operation starts, and freed when it ends. These buffers are temporary and are used to store data or intermediate results during the execution of specific operations.