able names. If this were not true (that is, if two different types of structured variables could share
component member names), it would not be clear which default structured variable to use for refer 
ences to member names that are not qualified by an instance name.
If a structured variable instance name is not legal as an unquoted identifier, refer to it as a quoted
identifier using backticks. For example,
hot cache
is not legal, but
 hot cache 
is.
global
,
session
, and
local
are not legal instance names. This avoids a conflict with notation
such as
@@global.
var_name
for referring to non structured system variables.
At the moment, the first two rules have no possibility of being violated because the only structured vari 
able type is the one for key caches. These rules assume greater significance if some other type of struc 
tured variable is created in the future.
With one exception, it is allowable to refer to structured variable components using compound names in
any context where simple variable names can occur. For example, you can assign a value to a structured
variable using a command line option:
shell> mysqld   hot_cache.key_buffer_size=64K
In an option file, do this:
[mysqld]
hot_cache.key_buffer_size=64K
If you start the server with such an option, it creates a key cache named
hot_cache
with a size of
64KB in addition to the default key cache that has a default size of 8MB.
Suppose that you start the server as follows:
shell> mysqld   key_buffer_size=256K 
  extra_cache.key_buffer_size=128K 
  extra_cache.key_cache_block_size=2048
In this case, the server sets the size of the default key cache to 256KB. (You could also have written
 default.key_buffer_size=256K
.) In addition, the server creates a second key cache named
extra_cache
that has a size of 128KB, with the size of block buffers for caching table index blocks
set to 2048 bytes.
The following example starts the server with three different key caches having sizes in a 3:1:1 ratio:
shell> mysqld   key_buffer_size=6M 
  hot_cache.key_buffer_size=2M 
  cold_cache.key_buffer_size=2M
Structured variable values may be set and retrieved at runtime as well. For example, to set a key cache
named
hot_cache
to a size of 10MB, use either of these statements:
mysql> SET GLOBAL hot_cache.key_buffer_size = 10*1024*1024;
mysql> SET @@global.hot_cache.key_buffer_size = 10*1024*1024;
To retrieve the cache size, do this:
mysql> SELECT @@global.hot_cache.key_buffer_size;
556
MySQL memory used = key_buffer + max_connections * (join_buffer + record_buffer + sort_buffer + thread_stack + tmp_table_size)