Original excerpt from: Http://forge.mysql.com/wiki/ServerVariables
Memory-related Variables
Memory-dependent variables
These servers variables control the amount of memory allocated to the various buffers and caches MySQL.
The following server variables control the total amount of memory that MySQL allocates to various buffers or swap caches.
Join_buffer_size
(per session) Controls The amount of memory allocated to perform joins in tables that have no keys which can is used to perform a Condit Ion filter. Allocated for each table joined without necessary filter conditions
(Session variables) control the total amount of memory allocated when a table is not indexed, and can be used as a conditional filter. Assigns each table in the connection without the necessary filtering conditions.
Key_buffer_size
(GLOBAL) (myisam-only) Controls The amount of memory allocated to the MyISAM index key cache
(Global variables) The total amount of memory allocated to the MyISAM index cache (for MyISAM tables only).
Innodb_buffer_pool_size
(GLOBAL) (innodb-only) Controls The amount of memory allocated to the InnoDB cache containing both clustered data and secondary index pages
(Global variables) (for InnoDB only) controls the total amount of memory allocated to the InnoDB cache that includes cluster data and secondary index pages.
Innodb_additional_mem_pool_size
(GLOBAL) (innodb-only) Controls The amount of memory allocated to the buffer storing the InnoDB internal data dictionary
(Global variables) (for InnoDB only) control is allocated to the buffers needed to sort the InnoDB internal data dictionary.
Innodb_log_buffer_size
(GLOBAL) (innodb-only) Controls The amount of memory allocated to the buffer storing InnoDB write-ahead log Entries
(Global variables) (for InnoDB only) controls the buffers that are assigned to the INNODB store for advanced write logging.
Query_cache_size
(GLOBAL) Controls The amount of memory allocated to the Query Cache
(Global variables) control the total amount of memory allocated to the query cache.
Read_buffer_size
(per session) Controls The amount of memory allocated to the connecting thread into process a table scan
(Session variable) controls the total number of connection thread memory assigned to the processing scan table.
Read_rnd_buffer_size
(per session) Controls The amount of memory allocated to the buffer used to read previously sorted
(Session variable) controls the total number of buffers that are allocated to read results that are currently sorted out.
Sort_buffer_size
(per session) Controls The amount memory allocated to the "buffer used to" sort result sets before the "set to the" Returning client
(Session variable) controls the total number of buffers required to sort the result set before returning the result to the calling client.
Thread_stack
(per session) Controls the default stack memory allocated for each connecting thread
(Session variable) controls the total number of default stack memory assigned to each connection thread.
Tmp_table_size
(GLOBAL) Controls the maximum memory to allocate to a temporary table before MySQL converts it into a on-disk MyISAM table
(Global variables) control the total amount of memory that MySQL needs to convert a temporary table to a MyISAM table that is stored by a disk.
Thread-related Variables
Thread-dependent variables
Thread_cache_size
(GLOBAL) Determines the number of thread connection objects, MySQL keeps in a cache to mitigate resource creation
(Global variables) determines the number of connection threads that MySQL maintains in the cache, which reduces the system resources needed to create the connection.