简单地说,可以把数据库参数看成一个键/值(key/value)对。第2章已经介绍了一个对于InnoDB存储引擎很重要的参数innodb_buffer_pool_size。如我们将这个参数设置为1G,即innodb_buffer_pool_size=1G。这里的“键”是innodb_buffer_pool_size,“值”是1G,这就是键值对。可以通过命令SHOW VARIABLES查看数据库中的所有参数,也可以通过LIKE来过滤参数名。从MySQL 5.1版本开始,还可以通过information_schema架构下的GLOBAL_VARIABLES视图来进行查找,如下所示。
mysql> SELECT * FROM
-> GLOBAL_VARIABLES
-> WHERE VARIABLE_NAME LIKE 'innodb_buffer%'\G;
*************************** 1. row ***************************
VARIABLE_NAME: INNODB_BUFFER_POOL_SIZE
VARIABLE_VALUE: 1073741824
1 row in set (0.00 sec)
mysql>SHOW VARIABLES LIKE 'innodb_buffer%'\G;
*************************** 1. row ***************************
Variable_name: innodb_buffer_pool_size
Value: 1073741824
1 row in set (0.00 sec)
无论使用哪种方法,输出的信息基本上都一样的,只不过通过视图GLOBAL_VARIABLES需要指定视图的列名。推荐使用命令SHOW VARIABLES,因为这个命令使用更为简单,且各版本的MySQL数据库都支持。
Oracle数据库存在所谓的隐藏参数(undocumented parameter),以供Oracle“内部人士”使用,SQL Server也有类似的参数。有些DBA曾问我,MySQL中是否也有这类参数。我的回答是:没有,也不需要。即使Oracle和SQL Server中都有些所谓的隐藏参数,在绝大多数的情况下,这些数据库厂商也不建议用户在生产环境中对其进行很大的调整。