MySQL动态系统变数

2013-08-21_111620

这是MySQL 5实力养成暨评量里的6-09.‘执行“SET GLOBAL 指令 = ‘SYSTEM’;”,当叙述中的“指令”为下列何项时,可设定MySQL的时区为作业系统时区?’

答案:(D) time_zone

[adsense][/adsense]

仆自学MySQL,已涉八月,这段历程还真是久,当中当然也有低落不想继续的心情,但总能撑过,实为上苍之祝福,希望这个题目将是最后一题。大家可以参阅MySQL 5.7 Reference Manual :: 10 Globalization :: 10.6 MySQL Server Time Zone Support 或是MySQL 5.1参考手册 :: 5. 数据库管理::5.3. mysqld:MySQL服务器::5.3.3. 服务器系统变量

转译成繁体中文于下:

伺服器将维护许多资料表示其配置的系统变数。所有变数均有预设值。可以在命令列中或选项档案设置选项在伺服器启动时对它们进行设置。大多数可以在运行时使用SET语句来设置。

mysqld伺服器维护两种变数。全域变数影响伺服器的全局操作。会话变数影响具体客户端连接相关操作。

伺服器启动时,将所有全域变数初始化为预设值。可以在选项档案或命令列中指定的选项来更改这些预设值。伺服器启动后,通过连接伺服器并执行SET GLOBAL var_name语句可以更改动态全域变数。要想更改全域变数,必须具有SUPER权限。

伺服器还为每个客户端连接维护会话变数。连接时使用相应全域变数的当前值对客户端会话变数进行初始化。客户可以通过SET SESSIONvar_name语句来更改动态会话变数。设置会话变数不需要特殊权限,但客户可以只更改自己的会话变数,而不更改其它客户的会话变数。

任何访问全域变数的客户端都可以看见对全域变数的更改。但是,它只影响在更改后连接的从该全域变数初始化相应会话变数的客户端。它不会影响已经连接上的客户端的会话变数(甚至是执行SET GLOBAL语句的客户端)。

当使用启动选项设置变数时,变数值可以使用后缀K、M或G分别资料表示千字节、兆字节或gigabytes。例如,下面的命令启动伺服器时的键值缓冲区大小为16 megabytes:

mysqld --key_buffer_size=16M

后缀的大小写没关系;16M和16m是同样的。

运行时,使用SET语句来设置系统变数。此时,不能使用后缀,但值可以采取下列资料表达式:

mysql> SET sort_buffer_size = 10 * 1024 * 1024;

要想显式指定是否设置全域或会话变数,使用GLOBAL或SESSION选项:

mysql> SET GLOBAL sort_buffer_size = 10 * 1024 * 1024;
mysql> SET SESSION sort_buffer_size = 10 * 1024 * 1024;

两个选项均没有,则语句设置会话变数。

5.3.3.1节,“动态系统变数”中列出了可以在运行时设置的变数。

如果您想用SET语句限制系统变数可设的最大值,可以在伺服器启动时通过–maximum-var_name形式的选项来指定。例如,要想防止query_cache_size的值运行时超过32MB,使用选项–maximum-query_cache_size=32M。

您可以通过SHOW VARIABLES语句查看系统变数及其值。详细讯息参见9.4节,“系统变数”

mysql> SHOW VARIABLES;
+---------------------------------+-------------------------------------------+
| Variable_name                   | Value                                     |
+---------------------------------+-------------------------------------------+
| auto_increment_increment        | 1                                         |
| auto_increment_offset           | 1                                         |
| automatic_sp_privileges         | ON                                        |
| back_log                        | 50                                        |
| basedir                         | /home/jon/bin/mysql/                      |
| binlog_cache_size               | 32768                                     |
| bulk_insert_buffer_size         | 8388608                                   |
| character_set_client            | latin1                                    |
| character_set_connection        | latin1                                    |
| character_set_database          | latin1                                    |
| character_set_results           | latin1                                    |
| character_set_server            | latin1                                    |
| character_set_system            | utf8                                      |
| character_sets_dir              | /home/jon/bin/mysql/share/mysql/charsets/ |
| collation_connection            | latin1_swedish_ci                         |
| collation_database              | latin1_swedish_ci                         |
| collation_server                | latin1_swedish_ci                         |
| completion_type                 | 0                                         |
| concurrent_insert               | 1                                         |
| connect_timeout                 | 5                                         |
| datadir                         | /home/jon/bin/mysql/var/                  |
| date_format                     | %Y-%m-%d                                  |
| datetime_format                 | %Y-%m-%d %H:%i:%s                         |
| default_week_format             | 0                                         |
| delay_key_write                 | ON                                        |
| delayed_insert_limit            | 100                                       |
| delayed_insert_timeout          | 300                                       |
| delayed_queue_size              | 1000                                      |
| div_precision_increment         | 4                                         |
| engine_condition_pushdown       | OFF                                       |
| expire_logs_days                | 0                                         |
| flush                           | OFF                                       |
| flush_time                      | 0                                         |
| ft_boolean_syntax               | + -><()~*:""&|                            |
| ft_max_word_len                 | 84                                        |
| ft_min_word_len                 | 4                                         |
| ft_query_expansion_limit        | 20                                        |
| ft_stopword_file                | (built-in)                                |
| group_concat_max_len            | 1024                                      |
| have_archive                    | YES                                       |
| have_bdb                        | NO                                        |
| have_blackhole_engine           | YES                                       |
| have_compress                   | YES                                       |
| have_crypt                      | YES                                       |
| have_csv                        | YES                                       |
| have_example_engine             | NO                                        |
| have_federated_engine           | NO                                        |
| have_geometry                   | YES                                       |
| have_innodb                     | YES                                       |
| have_isam                       | NO                                        |
| have_ndbcluster                 | DISABLED                                  |
| have_openssl                    | NO                                        |
| have_partition_engine           | YES                                       |
| have_query_cache                | YES                                       |
| have_raid                       | NO                                        |
| have_rtree_keys                 | YES                                       |
| have_symlink                    | YES                                       |
| init_connect                    |                                           |
| init_file                       |                                           |
| init_slave                      |                                           |
| innodb_additional_mem_pool_size | 1048576                                   |
| innodb_autoextend_increment     | 8                                         |
| innodb_buffer_pool_awe_mem_mb   | 0                                         |
| innodb_buffer_pool_size         | 8388608                                   |
| innodb_checksums                | ON                                        |
| innodb_commit_concurrency       | 0                                         |
| innodb_concurrency_tickets      | 500                                       |
| innodb_data_file_path           | ibdata1:10M:autoextend                    |
| innodb_data_home_dir            |                                           |
| innodb_doublewrite              | ON                                        |
| innodb_fast_shutdown            | 1                                         |
| innodb_file_io_threads          | 4                                         |
| innodb_file_per_table           | OFF                                       |
| innodb_flush_log_at_trx_commit  | 1                                         |
| innodb_flush_method             |                                           |
| innodb_force_recovery           | 0                                         |
| innodb_lock_wait_timeout        | 50                                        |
| innodb_locks_unsafe_for_binlog  | OFF                                       |
| innodb_log_arch_dir             |                                           |
| innodb_log_archive              | OFF                                       |
| innodb_log_buffer_size          | 1048576                                   |
| innodb_log_file_size            | 5242880                                   |
| innodb_log_files_in_group       | 2                                         |
| innodb_log_group_home_dir       | ./                                        |
| innodb_max_dirty_pages_pct      | 90                                        |
| innodb_max_purge_lag            | 0                                         |
| innodb_mirrored_log_groups      | 1                                         |
| innodb_open_files               | 300                                       |
| innodb_support_xa               | ON                                        |
| innodb_sync_spin_loops          | 20                                        |
| innodb_table_locks              | ON                                        |
| innodb_thread_concurrency       | 20                                        |
| innodb_thread_sleep_delay       | 10000                                     |
| interactive_timeout             | 28800                                     |
| join_buffer_size                | 131072                                    |
| key_buffer_size                 | 8388600                                   |
| key_cache_age_threshold         | 300                                       |
| key_cache_block_size            | 1024                                      |
| key_cache_division_limit        | 100                                       |
| language                        | /home/jon/bin/mysql/share/mysql/english/  |
| large_files_support             | ON                                        |
| large_page_size                 | 0                                         |
| large_pages                     | OFF                                       |
| license                         | GPL                                       |
| local_infile                    | ON                                        |
| locked_in_memory                | OFF                                       |
| log                             | ON                                        |
| log_bin                         | ON                                        |
| log_bin_trust_routine_creators  | OFF                                       |
| log_error                       | /home/jon/bin/mysql/var/master1.err       |
| log_slave_updates               | OFF                                       |
| log_slow_queries                | OFF                                       |
| log_warnings                    | 1                                         |
| long_query_time                 | 10                                        |
| low_priority_updates            | OFF                                       |
| lower_case_file_system          | OFF                                       |
| lower_case_table_names          | 0                                         |
| max_allowed_packet              | 1048576                                   |
| max_binlog_cache_size           | 4294967295                                |
| max_binlog_size                 | 1073741824                                |
| max_connect_errors              | 10                                        |
| max_connections                 | 100                                       |
| max_delayed_threads             | 20                                        |
| max_error_count                 | 64                                        |
| max_heap_table_size             | 16777216                                  |
| max_insert_delayed_threads      | 20                                        |
| max_join_size                   | 4294967295                                |
| max_length_for_sort_data        | 1024                                      |
| max_relay_log_size              | 0                                         |
| max_seeks_for_key               | 4294967295                                |
| max_sort_length                 | 1024                                      |
| max_tmp_tables                  | 32                                        |
| max_user_connections            | 0                                         |
| max_write_lock_count            | 4294967295                                |
| multi_range_count               | 256                                       |
| myisam_data_pointer_size        | 6                                         |
| myisam_max_sort_file_size       | 2147483647                                |
| myisam_recover_options          | OFF                                       |
| myisam_repair_threads           | 1                                         |
| myisam_sort_buffer_size         | 8388608                                   |
| ndb_autoincrement_prefetch_sz   | 32                                        |
| ndb_cache_check_time            | 0                                         |
| ndb_force_send                  | ON                                        |
| ndb_index_stat_cache_entries    | 32                                        |
| ndb_index_stat_enable           | ON                                        |
| ndb_index_stat_update_freq      | 20                                        |
| ndb_use_exact_count             | ON                                        |
| ndb_use_transactions            | ON                                        |
| net_buffer_length               | 16384                                     |
| net_read_timeout                | 30                                        |
| net_retry_count                 | 10                                        |
| net_write_timeout               | 60                                        |
| new                             | OFF                                       |
| old_alter_table                 | OFF                                       |
| old_passwords                   | OFF                                       |
| open_files_limit                | 1024                                      |
| optimizer_prune_level           | 1                                         |
| optimizer_search_depth          | 62                                        |
| pid_file                        | /home/jon/bin/mysql/var/hostname.pid1     |
| port                            | 3306                                      |
| preload_buffer_size             | 32768                                     |
| protocol_version                | 10                                        |
| query_alloc_block_size          | 8192                                      |
| query_cache_limit               | 1048576                                   |
| query_cache_min_res_unit        | 4096                                      |
| query_cache_size                | 0                                         |
| query_cache_type                | ON                                        |
| query_cache_wlock_invalidate    | OFF                                       |
| query_prealloc_size             | 8192                                      |
| range_alloc_block_size          | 2048                                      |
| read_buffer_size                | 131072                                    |
| read_only                       | OFF                                       |
| read_rnd_buffer_size            | 262144                                    |
| relay_log_purge                 | ON                                        |
| relay_log_space_limit           | 0                                         |
| rpl_recovery_rank               | 0                                         |
| secure_auth                     | OFF                                       |
| server_id                       | 1                                         |
| skip_external_locking           | ON                                        |
| skip_networking                 | OFF                                       |
| skip_show_database              | OFF                                       |
| slave_compressed_protocol       | OFF                                       |
| slave_load_tmpdir               | /tmp/                                     |
| slave_net_timeout               | 3600                                      |
| slave_skip_errors               | OFF                                       |
| slave_transaction_retries       | 10                                        |
| slow_launch_time                | 2                                         |
| socket                          | /tmp/mysql.sock                           |
| sort_buffer_size                | 2097144                                   |
| sql_mode                        |                                           |
| sql_notes                       | ON                                        |
| sql_warnings                    | ON                                        |
| storage_engine                  | MyISAM                                    |
| sync_binlog                     | 0                                         |
| sync_frm                        | ON                                        |
| sync_replication                | 0                                         |
| sync_replication_slave_id       | 0                                         |
| sync_replication_timeout        | 10                                        |
| system_time_zone                | EST                                       |
| table_cache                     | 64                                        |
| table_lock_wait_timeout         | 50                                        |
| table_type                      | MyISAM                                    |
| thread_cache_size               | 0                                         |
| thread_stack                    | 196608                                    |
| time_format                     | %H:%i:%s                                  |
| time_zone                       | SYSTEM                                    |
| timed_mutexes                   | OFF                                       |
| tmp_table_size                  | 33554432                                  |
| tmpdir                          |                                           |
| transaction_alloc_block_size    | 8192                                      |
| transaction_prealloc_size       | 4096                                      |
| tx_isolation                    | REPEATABLE-READ                           |
| updatable_views_with_limit      | YES                                       |
| version                         | 5.1.2-alpha-log                           |
| version_comment                 | Source distribution                       |
| version_compile_machine         | i686                                      |
| version_compile_os              | suse-linux                                |
| wait_timeout                    | 28800                                     |
+---------------------------------+-------------------------------------------+
218 rows in set (0.03 sec)

此处描述了大多数系统变数。没有版本的变数在所有MySQL 5.1 发布中适用。关于其使用历史讯息,请参见MySQL 5.0参考指南MySQL 4.1参考指南。InnoDB系统变数列于 15.2.4节,“InnoDB启动选项”

若没有另行规定,缓冲区大小、长度和堆栈大小的单位均为字节。

关于这些变数的调节讯息参见7.5.2节,“调节伺服器参数”

·         auto_increment_increment

auto_increment_increment和auto_increment_offset用于主伺服器-主伺服器(master-to-master)复制,并可以用来控制AUTO_INCREMENT栏位的操作。两个变数均可以设置为全域或局部变数,并且假定每个值都可以为1到65,535之间的整数值。将其中一个变数设置为0会使该变数为1。如果试图将这些变数设置为大于65,535或小于0的值,则会将该值设置为65,535。如果向将auto_increment_increment或auto_increment_offset设置为非整数值,则会给出错误,并且变数的实际值在这种情况下保持不变。

这两个变数影响AUTO_INCREMENT栏位的方式:

o        auto_increment_increment控制栏位中的值的增量值。例如:

o                       mysql> SHOW VARIABLES LIKE 'auto_inc%';
o                       +--------------------------+-------+
o                       | Variable_name            | Value |
o                       +--------------------------+-------+
o                       | auto_increment_increment | 1     |
o                       | auto_increment_offset    | 1     |
o                       +--------------------------+-------+
o                       2 rows in set (0.00 sec)
o
o                       mysql> CREATE TABLE autoinc1 (col INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
o                       Query OK, 0 rows affected (0.04 sec)
o
o                       mysql> SET @auto_increment_increment=10;
o                       Query OK, 0 rows affected (0.00 sec)
o
o                       mysql> SHOW VARIABLES LIKE 'auto_inc%';
o                       +--------------------------+-------+
o                       | Variable_name            | Value |
o                       +--------------------------+-------+
o                       | auto_increment_increment | 10    |
o                       | auto_increment_offset    | 1     |
o                       +--------------------------+-------+
o                       2 rows in set (0.01 sec)
o
o                       mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
o                       Query OK, 4 rows affected (0.00 sec)
o                       Records: 4  Duplicates: 0  Warnings: 0
o
o                       mysql> SELECT col FROM autoinc1;
o                       +-----+
o                       | col |
o                       +-----+
o                       |   1 |
o                       |  11 |
o                       |  21 |
o                       |  31 |
o                       +-----+
o                       4 rows in set (0.00 sec)

(注明如何使用SHOW VARIABLES来获取这些变数的当前值)。

o        auto_increment_offset确定AUTO_INCREMENT栏位值的起点。假定在与前面的例子的相同的会话中执行下面的命令:

o                       mysql> SET @auto_increment_offset=5;
o                       Query OK, 0 rows affected (0.00 sec)
o
o                       mysql> SHOW VARIABLES LIKE 'auto_inc%';
o                       +--------------------------+-------+
o                       | Variable_name            | Value |
o                       +--------------------------+-------+
o                       | auto_increment_increment | 10    |
o                       | auto_increment_offset    | 5     |
o                       +--------------------------+-------+
o                       2 rows in set (0.00 sec)
o
o                       mysql> CREATE TABLE autoinc2 (col INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
o                       Query OK, 0 rows affected (0.06 sec)
o
o                       mysql> INSERT INTO autoinc2 VALUES (NULL), (NULL), (NULL), (NULL);
o                       Query OK, 4 rows affected (0.00 sec)
o                       Records: 4  Duplicates: 0  Warnings: 0
o
o                       mysql> SELECT col FROM autoinc2;
o                       +-----+
o                       | col |
o                       +-----+
o                       |   5 |
o                       |  15 |
o                       |  25 |
o                       |  35 |
o                       +-----+
o                       4 rows in set (0.02 sec)
o

如果auto_increment_offset的值大于auto_increment_increment的值,则auto_increment_offset的值被忽略。

如果其中一个或两个变数被更改了,然后更改插入到包含AUTO_INCREMENT栏位的资料表中的新行,结果可能看上去有问题,由于计算AUTO_INCREMENT系列值时没有考虑栏位内已经存在的值,并且插入的下一个值是栏位内最小的值,大于AUTO_INCREMENT栏位内已有的最大值。换句话说,数值的计算方法为:

auto_increment_offset+ N * auto_increment_increment

其中N为系列内的正整数值[1,2,3,…]。例如:

mysql> SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 10    |
| auto_increment_offset    | 5     |
+--------------------------+-------+
2 rows in set (0.00 sec)

mysql> SELECT col FROM autoinc1;
+-----+
| col |
+-----+
|   1 |
|  11 |
|  21 |
|  31 |
+-----+
4 rows in set (0.00 sec)

mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> SELECT col FROM autoinc1;
+-----+
| col |
+-----+
|   1 |
|  11 |
|  21 |
|  31 |
|  35 |
|  45 |
|  55 |
|  65 |
+-----+
8 rows in set (0.00 sec)

auto_increment_increment和auto_increment_offset所示的值可以生成系列5 + N * 10,即,[5,15,25,35,45,…]。在INSERT前col 栏位内最大的值为31,AUTO_INCREMENT数列的下一个值为35,因此col中插入的值从该点开始,结果如SELECT查询所示。

一定要记住不可能将这两个变数的结果限制到一个资料表中,因此不会替代其它资料库管理系统提供的序列;这些变数控制MySQL伺服器上all资料表AUTO_INCREMENT栏位的所有行为。如果某个变数设为全域变数,则只有通过局部设置将全域值更改和覆盖后或mysqld重启后其作用方可改变;如果局部设置,则新值影响所有资料表的AUTO_INCREMENT栏位,在这个会话期间当前用户在这些资料表中插入了新行,除非在会话期间更改了这些值。

auto_increment_increment的 预设值为1。参见6.12节,“多伺服器复制中的Auto-Increment”

·         auto_increment_offset

该变数的预设值为1。详见auto_increment_increment的描述。

·         back_log

MySQL有的主要连接请求的数量。当主MySQL线程在短时间内得到许多连接请求时发挥作用。主线程需要花一些时间(尽管很少)来检查连接并启动一个新线程。back_log值说明MySQL临时停止响应新请求前在短时间内可以堆起多少请求。如果您需要在短时间内允许大量连接,可以增加该数值。

换句话说,该值为“进”TCP/IP连接帧听队列的大小。作业系统有该队列自己的限制值。本手册中Unix listen()系统使用页应有更详细的讯息。该变数最大值请查阅OS文档。企图将back_log设置为高于您的作业系统限值是徒劳无益的。

·         basedir

MySQL安装基准目录。可以用–basedir选项设置该变数。

·         bdb_cache_size

为BDB资料表缓存索引和行分配的缓冲区的大小。如果您不使用BDB资料表,您应用–skip-bdb启动mysqld以便不浪费该缓存。

·         bdb_home

BDB资料表基准目录。应与datadir变数的值相同。

·         bdb_log_buffer_size

为BDB资料表缓存索引和行分配的缓冲区的大小。如果您不使用BDB资料表,您应将该值设置为0或用–skip-bdb启动mysqld以便不浪费该缓存。

·         bdb_logdir

BDB储存引擎写它日志档案的目录。可以用–bdb-logdir选项设置该变数。

·         bdb_max_lock

在BDB资料表下可以激活的最大锁数(预设为10,000)。如果当您执行长交易或当mysqld必须检查许多行来计算查询时出现下面的错误,您应增加该值:

bdb: Lock table is out of available locks
Got error 12 from ...

·         bdb_shared_data

如果您正使用–bdb-shared-data应为ON。

·         bdb_tmpdir

–bdb-tmpdir选项的值。

 

·         binlog_cache_size

在交易过程中容纳二进制日志SQL语句的缓存大小。二进制日志缓存是伺服器支援交易储存引擎并且伺服器启用了二进制日志(–log-bin选项)的前提下为每个客户端分配的内存。如果您经常使用大的,多语句交易,您可以增加该值以获得更有的性能。Binlog_cache_use和Binlog_cache_disk_use状态变数可以用来调整该变数的大小。参见5.11.3节,“二进制日志”

·         bulk_insert_buffer_size

MyISAM 使用专用树状缓存来使INSERT … SELECT、INSERT … VALUES (…)、(…)、 …和LOAD DATA INFILE的大块插入更快。该变数用每线程的字节数限制缓存树的大小。将它设置为0禁用最佳化。释:只有向非空资料表新增数据时才使用该缓存。 预设值是8MB。

·         character_set_client

来自客户端的语句的字元编码。

·         character_set_connection

用于没有字元编码导入符的文字和数字-字串转换。

·         character_set_database

预设资料库使用的字元编码。当预设资料库更改时,伺服器则设置该变数。如果没有预设资料库,变数的值同character_set_server。

·         character_set_results

用于向客户端返回查询结果的字元编码。

·         character_set_ server

伺服器的预设字元编码。

·         character_set_system

伺服器用来保存识别符的字元编码。该值一定是utf8。

·         character_sets_dir

字元编码安装目录。

·         collation_connection

连接字元编码的校对规则。

·         collation_database

预设资料库使用的校对规则。当预设资料库改变时伺服器则设置该变数。如果没有预设资料库,变数的值同collation_server。

·         collation_server

伺服器的预设校对规则。

·         completion_type

交易结束类型:

o        如果该值为0(预设),COMMIT和ROLLBACK不受影响。

o        如果该值为1,COMMIT和ROLLBACK分别等同于COMMIT AND CHAIN和ROLLBACK AND CHAIN。(新交易用刚刚结束的交易相同的间隔等级立即启动)。

o        如果该值为2,COMMIT和ROLLBACK分别等同于COMM它RELEASE和ROLLBACK RELEASE。(交易终止后,伺服器中断)。

·         concurrent_insert

如果为ON(预设值),MySQL允许INSERT和SELECT语句在中间没有空资料块的MyISAM资料表中并行运行。您可以用–safe或–skip-new启动mysqld关闭该选项。

该变数为整数,有3个值:

描述
0
1 (预设)在没有空资料块的MyISAM资料表中启用并行插入
2 为所有MyISAM资料表启用并行插入。如果资料表有空记录或正被另一线程使用,新行将插入到资料表的最后。如果资料表未使用,MySQL将进行普通读锁定并将新行插入空记录。

·         connect_timeout

mysqld伺服器用Bad handshake响应前等待连接包的秒数。

·         datadir

MySQL资料目录。可以用–datadir选项设置该变数。

·         date_format

该变数未使用。

·         datetime_format

该变数未使用。

·         default_week_format

WEEK() 函数使用的预设模式。

·         delay_key_write

该选项只适用MyISAM资料表。它具有下述值可以影响CREATE TABLE语句使用的DELAY_KEY_WRITE资料表选项的处理。

选项 描述
OFF DELAY_KEY_WRITE被忽略。
ON MySQL在CREATE TABLE中用DELAY_KEY_WRITE选项。这是 预设值。
ALL 用启用DELAY_KEY_WRITE选项建立资料表的相同方法对所有新打开资料表的进行处理。

如果启用了DELAY_KEY_WRITE,说明使用该项的资料表的键缓冲区在每次更新索引时不被清空,只有关闭资料表时才清空。遮掩盖可以大大加快键的写操作,但如果您使用该特性,您应用–myisam-recover选项启动伺服器,为所有MyISAM资料表新增自动检查(例如,–myisam-recover=BACKUP,FORCE)。参见5.3.1节,“mysqld命令行选项”15.1.1节,“MyISAM启动选项”

请注意–external-locking不为使用延迟键写入的资料表提供索引破坏保护。

·         delayed_insert_limit

插入delayed_insert_limit 延迟行后,INSERT DELAYED 处理器线程检查是否有挂起的SELECT语句。如果有,在继续插入延迟的行之前,允许它们先执行。

·         delayed_insert_timeout

INSERT DELAYED处理器线程终止前应等待INSERT语句的时间。

·         delayed_queue_size

这是各个资料表中处理INSERT DELAYED语句时队列中行的数量限制。如果队列满了,执行INSERT DELAYED语句的客户端应等待直到队列内再有空间。

·         div_precision_increment

该变数说明用/操作符执行除操作的结果可增加的精确度的位数。 预设值是4。最小和最大值分别为0和30。下面的示范说明了增加 预设值的结果。

mysql> SELECT 1/7;
+--------+
| 1/7    |
+--------+
| 0.1429 |
+--------+
mysql> SET div_precision_increment = 12;
mysql> SELECT 1/7;
+----------------+
| 1/7            |
+----------------+
| 0.142857142857 |
+----------------+

·         engine_condition_pushdown

该变数适用于NDB。预设值为0(OFF):如果您执行类似查询SELECT * FROM t WHERE mycol = 42,其中mycol为没有索引的栏位,当满了的资料表扫瞄每个NDB节点时,执行该查询。每个节点使用WHERE条件将每一行发送给MySQL伺服器。如果engine_condition_pushdown被设置为1(ON),该条件“pushed down”给储存引擎并发送给NDB节点。每个节点都执行扫瞄,并只向MySQL伺服器发送回匹配条件的行。

·         expire_logs_days

二进制日志自动删除的天数。预设值为0,资料表示“没有自动删除”。启动时和二进制日志循环时可能删除。

·         flush

如果用–flush选项启动mysqld该值为ON。

·         flush_time

如果设为非零值,每隔flush_time秒则关闭所有资料表以释放硬盘资源并同步未清空的资料。我们建议只在Windows 9x或Me,或有最小资源的系统中使用该选项。

·         ft_boolean_syntax

使用IN BOOLEAN MODE执行的布尔全文搜索支援的操作符系列。参见12.7.1节,“布尔全文搜索”

预设变数值为 ‘+ -><()~*:””&|’。更改这些值的规则是:

o        操作符函数由其在字串内的位置决定。

o        替换值必须是14个字元。

o        每个字元必须为ASCII码非文字数字字元。

o        第1个或第2个字元必须为空格。

o        除非语句在第11个字元和第12个字元处引用了操作符,否则不允许复制。这两个字元可以不相同,但这是唯一可能的两个。

o        位置10、13和14(预设设置为‘:’、‘&’和‘|’)保留用于将来延伸。

·         ft_max_word_len

FULLTEXT索引中所包含的字的最大长度。

释:更改该变数后必须重建FULLTEXT索引。应使用REPAIR TABLE tbl_name QUICK。

·         ft_min_word_len

FULLTEXT索引中所包含的字的最小长度。

释:更改该变数后必须重建FULLTEXT索引。应使用REPAIR TABLE tbl_name QUICK。

·         ft_query_expansion_limit

使用WITH QUERY EXPANSION进行全文搜索的最大匹配数。

·         ft_stopword_file

用于读取全文搜索的停止字清单的档案。该档案中的所有字都会用到;注释不重要。预设情况下,使用内嵌式停止字清单(如myisam/ft_static.c档案中所定义)。将该变数设置为空字串(”)则禁用停止字过滤。

释:更改该变数或停止字档案的内容后必须重建FULLTEXT索引。应使用REPAIR TABLE tbl_name QUICK。

·         group_concat_max_len

允许的GROUP_CONCAT()函数结果的最大长度。

·         have_archive

如果mysqld支援ARCHIVE资料表则为YES,否则为NO。

·         have_bdb

如果mysqld支援BDB资料表则为YES。如果使用–skip-bdb则为DISABLED。

·         have_blackhole_engine

如果mysqld支援BLACKHOLE资料表则为YES,否则为NO。

·         have_compress

是否zlib压缩库适合该伺服器。如果不适合,不能使用COMPRESS()和UNCOMPRESS()函数。

·         have_crypt

是否crypt()系统使用适合该伺服器。如果不适合,不能使用CRYPT()函数。

·         have_csv

如果mysqld支援ARCHIVE资料表则为YES,否则为NO。

·         have_example_engine

如果mysqld支援EXAMPLE资料表则为YES,否则为NO。

have_federated_engine

如果mysqld支援FEDERATED资料表则为YES,否则为NO。

·         have_geometry

是否伺服器支援空间数据类型。

·         have_innodb

如果mysqld支援InnoDB资料表则为YES。如果使用–skip-innodb则为DISABLED。

·         have_isam

在MySQL 5.1中,只是为了向后兼容显示该值,并且总是NO,因为不再支援ISAM资料表。

·         have_ndbcluster

如果mysqld支援NDB CLUSTER资料表则为YES。如果使用了–skip-ndbcluster则为DISABLED。

·         have_partition_engine

如果mysqld支援分区则为YES。在MySQL 5.1.1中加入。

·         have_openssl

如果mysqld支援客户端/伺服器协议的SSL(加密)则为YES。

·         have_query_cache

如果mysqld支援查询缓存则为YES。

·         have_raid

如果mysqld支援RAID选项则为YES。

·         have_rtree_keys

RTREE索引是否可用。(用于MyISAM资料表的空间索引)。

·         have_symlink

是否启用符号连结支援。在Unix中需要用于支援DATA DIRECTORY和INDEX DIRECTORY资料表选项。

·         init_connect

伺服器为每个连接的客户端执行的字串。字串由一个或多个SQL语句组成。要想指定多个语句,用分号间隔开。例如,每个客户端开始时预设启用autocommit模式。没有全域伺服器变数可以规定autocommit预设情况下应禁用,但可以用init_connect来获得相同的效果:

SET GLOBAL init_connect='SET AUTOCOMMIT=0';

还可以在命令行或选项档案中设置该变数。要想使用选项档案设置变数,应包括下述行:

[mysqld]
init_connect='SET AUTOCOMMIT=0'

请注意init_connect的内容并不为拥有SUPER权限的用户执行;实际是内容设置错误(包含错误查询,例如语法错误),这样使所有连接失败。不为SUPER用户执行,使SUPER用户可以打开连接并固定init_connect。

·         init_file

启动伺服器时用–init-file选项指定的档案名。档案中包含伺服器启动时要执行的SQL语句。每个语句必须在同一行中并且不能包括注释。

·         init_slave

该变数类似init_connect,但是每次SQL线程启动时从伺服器应执行该字串。该字串的格式与init_connect变数相同。

·         innodb_xxx

InnoDB系统变数列入15.2.4节,“InnoDB启动选项”

·         interactive_timeout

伺服器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。又见wait_timeout。

·         join_buffer_size

用于完全联接的缓冲区的大小(当不使用索引的时候使用联接操作)。一般情况获得快速联接的最好方法是新增索引。当增加索引时不可能通过增加join_buffer_size值来获得快速完全联接。将为两个资料表之间的每个完全联接分配联接缓冲区。对于多个资料表之间不使用索引的复杂联接,需要多联接缓冲区。

·         key_buffer_size

MyISAM资料表的索引块分配了缓冲区,由所有线程共享。key_buffer_size是索引块缓冲区的大小。键值缓冲区即为键值缓存。

key_buffer_size的最大允许设定值为4GB。有效最大值可以更小,取决于可用物理RAM和作业系统或硬件平台强加的每个程序的RAM限制。

增加该值,达到您可以提供的更好的索引处理(所有读和多个写操作)。通常为主要运行MySQL的机器内存的25%。但是,如果您将该值设得过大(例如,大于总内存的50%),系统将转换为页并变得极慢。MySQL依赖作业系统来执行资料读取时的档案系统缓存,因此您必须为档案系统缓存留一些空间。

同时写多行时要想速度更快,应使用LOCK TABLES。参见13.4.5节,“LOCK TABLES和UNLOCK TABLES语法”

您可以通过执行SHOW STATUS语句并检查Key_read_requests、Key_reads、Key_write_requests和Key_writes状态变数来检查键值缓冲区的性能。参见13.5.4节,“SHOW语法”

Key_reads/Key_read_requests比例一般应小于0.01。如果您使用更新和删除,Key_writes/Key_write_requests比例通常接近1,但如果您更新时会同时影响到多行或如果您正使用DELAY_KEY_WRITE资料表选项,可能小得多。

用key_buffer_size结合Key_blocks_unused状态变数和缓冲区块大小,可以确定使用的键值缓冲区的比例。从key_cache_block_size伺服器变数可以获得缓冲区块大小。使用的缓冲区的比例为:

1 - ((Key_blocks_unused * key_cache_block_size) / key_buffer_size)

该值为约数,因为键值缓冲区的部分空间被分配用作内部管理结构。

可以建立多个MyISAM键值缓存。4GB限制可以适合每个缓存,而不是一个组。参见7.4.6节,“MyISAM键高速缓冲”

·         key_cache_age_threshold

该值控制将缓冲区从键值缓存热子链(sub-chain)降级到温子链(sub-chain)。如果值更低,则降级更快。最小值为100。 预设值是300。参见7.4.6节,“MyISAM键高速缓冲”

·         key_cache_block_size

键值缓存内块的字节大小。预设值是1024。参见7.4.6节,“MyISAM键高速缓冲”

·         key_cache_division_limit

键值缓存缓冲区链热子链和温子链的划分点。该值为缓冲区链用于温子链的百分比。允许的值的范围为1到100。 预设值是100。参见7.4.6节,“MyISAM键高速缓冲”

·         language

错误消息所用语言。

·          large_file_support

mysqld编译时是否使用了大档案支援选项。

·         large_pages

说明是否启用了大页面支援。

·         license

伺服器的授权类型。

·         local_infile

是否LOCAL支援LOAD DATA INFILE语句。

·         locked_in_memory

是否用–memlock将mysqld锁在内存中。

·         log

是否启用将所有查询记录到常规查询日志中。参见5.11.2节,“通用查询日志”

·         log_bin

是否启用二进制日志。参见5.11.3节,“二进制日志”

·         log_bin_trust_routine_creators

若启用了二进制记录,则该变数适用。它控制是否可以信任保存的程式的作者不会建立向二进制日志写入不安全事件的程式。如果设置为0(预设情况),不允许用户建立或修改保存的程式,除非他们不仅拥有CREATE ROUTINE或ALTER ROUTINE权限还拥有SUPER权限。

设置为0还强制限制,程式必须用DETERMINISTIC 特征或用READS SQL DATA或NO SQL特征声明。如果变数设置为1,MySQL不对保存程式的建立强加限制。

参见20.4节,“储存子程式和触发程式的二进制日志功能”

·         log_error

错误日志的位置。

·         log_slave_updates

是否从伺服器从主伺服器收到的更新应记入从伺服器自己的二进制日志。要想生效,必须启用从伺服器的二进制记录。参见6.8节,“复制启动选项”

·         log_slow_queries

是否记录慢查询。用long_query_time变数的值来确定“慢查询”。参见5.11.4节,“慢速查询日志”

·         log_warnings

是否产生其它警告消息。预设情况下启用。放弃的连接不记入错误日志,除非值大于1。

·         long_query_time

如果查询时间超过该值,则增加Slow_queries状态变数。如果您正使用–log-slow-queries选项,则查询记入慢查询日志档案。用实际时间测量该值,而不是CPU时间,因此低于轻负载系统阈值的查询可能超过重负载系统的阈值。参见5.11.4节,“慢速查询日志”

·         low_priority_updates

如果设置为1,所有INSERT、UPDATE、DELETE和LOCK TABLE WRITE语句将等待直到受影响的资料表没有挂起的SELECT或LOCK TABLE READ。该变数以前叫做sql_low_priority_updates。

·         lower_case_file_system

该变数说明是否资料目录所在的档案系统对档案名的大小写敏感。ON说明对档案名的大小写不敏感,OFF资料表示敏感。

·           lower_case_table_names

如果设置为1,资料表名用小写保存到硬盘上,并且资料表名比较时不对大小写敏感。如果设置为2,按照指定的保存资料表名,但按照小写来比较。该选项还适合资料库名和资料表的别名。参见9.2.2节,“识别符大小写敏感性”

如果您正使用InnoDB资料表,您应在所有平台上将该变数设置为1,强制将名字转换为小写。

如果运行MySQL的系统对档案名的大小写不敏感(例如Windows或Mac OS X),您不应将该变数设置为0。如果启动时没有设置该变数,并且资料目录所在档案系统对档案名的大小写不敏感,MySQL自动将lower_case_table_names设置为2。

·         max_allowed_packet

包或任何生成的/中间字串的最大大小。

包消息缓冲区初始化为net_buffer_length字节,但需要时可以增长到max_allowed_packet字节。该值预设很小,以捕获大的(可能是错误的)资料包。

如果您使用大的BLOB栏位或长字串,您必须增加该值。应同您想要使用的最大的BLOB一样大。max_allowed_packet的协议限制为1GB。

·         max_binlog_cache_size

如果多语句交易需要更大的内存,您会得到错误Multi-statement transaction required more than ‘max_binlog_cache_size’ bytes of storage。

·         max_binlog_size

如果二进制日志写入的内容超出给定值,日志就会发生滚动。您不能将该变数设置为大于1GB或小于4096字节。 预设值是1GB。

请注意如果您正使用交易:交易以一个块写入二进制日志,因此不不能被几个二进制日志拆分。因此,如果您有大的交易,二进制日志可能会大于max_binlog_size。

如果max_relay_log_size为0, max_binlog_size的值也适用于中继日志。

·         max_connect_errors

如果中断的与主机的连接超过该数目,该主机则阻塞后面的连接。您可以用 FLUSH HOSTS语句解锁锁定的主机。

·         max_connections

允许的并行客户端连接数目。增大该值则增加mysqld 需要的档案描述符的数量。关于档案描述符限制的注释参见7.4.9节,“MySQL如何打开和关闭资料表”。还可参见A.2.6节,“连接数过多”

·         max_delayed_threads

不要启动大于该数目的线程来处理INSERT DELAYED语句。如果所有INSERT DELAYED线程已经在使用,您想在新资料表中插入资料,行插入时好像未指定DELAYED属性。如果您将该值设置为0,MySQL不会建立线程来处理DELAYED行;其结果是完全禁用了DELAYED。

·         max_error_count

保存由SHOW ERRORS或SHOW WARNINGS显示的错误、警告和注解的最大数目。

·         max_heap_table_size

该变数设置MEMORY (HEAP)资料表可以增长到的最大空间大小。该变数用来计算MEMORY资料表的MAX_ROWS值。在已有的MEMORY资料表上设置该变数没有效果,除非用CREATE TABLE或TRUNCATE TABLE等语句重新建立资料表。

·         max_insert_delayed_threads

该变数为max_delayed_threads的同义词。

·         max_join_size

不允授权能需要检查多于max_join_size行(为单个资料表语句)或行组合(为多个资料表语句)或可能执行大于max_join_size次硬盘查询的SELECT语句。通过设置该值,您可以捕获键使用不正确并可能花很长时间的SELECT语句。如果用户想要执行没有WHERE子句的花较长时间或返回数百万行的联接,则设置它。

将该变数设置为DEFAULT之外的值,将SQL_BIG_SELECTS的值重设为0。如果您重新设置SQL_BIG_SELECTS值,max_join_size变数被忽略。

如果查询结果位于查询缓存中,则不检查结果大小,因为前面已经计算了结果,不会要求伺服器将它发送给客户端。

该变数以前叫做sql_max_join_size。

·         max_length_for_sort_data

确定使用的filesort算法的索引值大小的限值。参见7.2.12节,“MySQL如何最佳化ORDER BY

·         max_relay_log_size

如果复制从伺服器写入中继日志时超出给定值,则滚动中继日志。通过该变数您可以对中继日志和二进制日志设置不同的限制。但是,将该变数设置为0,MySQL可以对二进制日志和中继日志使用max_binlog_size。max_relay_log_size必须设置在4096字节和1GB(包括)之间,或为0。 预设值是0。参见6.3节,“复制实施细节”

·         max_seeks_for_key

限制根据键值寻找行时的最大搜索数。MySQL最佳化器假定当用扫瞄键在资料表内搜索匹配的行时,不需要超过该数量的键值搜索,而不管键的实际基数是什么(参见13.5.4.11节,“SHOW INDEX语法”)。将该值设置为较低的值(100?),您可以强制MySQL选择键值而不选择资料表扫瞄。

·         max_sort_length

当排序BLOB或TEXT值时使用的字节数。只使用每个值的前max_sort_length字节;其它的被忽略。

·         max_tmp_tables

客户端可以同时打开的临时资料表的最大数。(但该选项还未生效)。

·         max_user_connections

任何给定的MySQL帐号允许的最大同时连接数。0值资料表示“没有限制”。

该变数具有全域范围和(只读)会话范围。会话变数的的值与全域变数的值相同,除非当前帐号具有非零MAX_USER_CONNECTIONS资源限制。在这种情况下,会话值反应了帐号限制。

·         max_write_lock_count

超过写锁定限制后,允许部分读锁定。

·         myisam_data_pointer_size

预设指针大小,单位是字节,当未指定MAX_ROWS选项时,CREATE TABLE使用该变数建立MyISAM资料表。该变数不能小于2或大于7。 预设值是6。参见A.2.11节,“资料表已满”

·         (DEPRECATED) myisam_max_extra_sort_file_size

释:MySQL 5.1不支援该变数。详细讯息参见MySQL 5.0 参考手册

·         myisam_max_sort_file_size

重建MyISAM索引(在REPAIR TABLE、ALTER TABLE或LOAD DATA INFILE过程中)时,允许MySQL使用的临时档案的最大空间大小。如果档案的大小超过该值,则使用键值缓存建立索引,要慢得多。该值的单位为字节。

·         myisam_recover_options

–myisam-recover选项的值。

·         myisam_repair_threads

如果该值大于1,在Repair by sorting过程中并行建立MyISAM资料表索引(每个索引在自己的线程内)。 预设值是1。释:多线程维护仍然是alpha 编码。

·         myisam_sort_buffer_size

当在REPAIR TABLE或用CREATE INDEX建立索引或ALTER TABLE过程中排序 MyISAM索引分配的缓冲区。

·         myisam_stats_method

当为MyISAM资料表搜集关于索引值分发的统计讯息时伺服器如何处理NULL值。该变数有两个可能的值,nulls_equal和nulls_unequal。对于nulls_equal,认为所有NULL索引值时相等的,并形成一个数值组,其空间大小等于NULL值的数。对于nulls_unequal,NULL值认为是不相等的,每个NULL形成一个数值组,大小为1。

方法用于生成资料表统计讯息,影响最佳化器如何选择索引来执行查询,详细描述见7.4.7节,“MyISAM索引统计集合”

·         multi_read_range

指定范围选择过程中发送到储存引擎的范围的最大值。预设值是256。向引擎发送多个范围可以大大改进某些选择的性能,特别是对NDBCLUSTER。该引擎需要向所有节点发送范围请求,同时发送许多请求可以大大降低通信成本。

·         named_pipe

(只适用Windows)说明伺服器是否支援命名管道连接。

·         net_buffer_length

在查询之间将通信缓冲区重设为该值。一般情况不应改变,但如果内存很小,可以将它设置为期望的客户端发送的SQL语句的长度。如果语句超出该长度,缓冲区自动扩大,直到max_allowed_packet字节。

·         net_read_timeout

中断读前等待连接的其它资料的秒数。当伺服器从客户端读数时,net_read_timeout指控制何时中断的超时值。当伺服器向客户端写时,net_write_timeout指控制何时中断的超时值。又见slave_net_timeout。

·         net_retry_count

如果某个通信端口的读操作中断了,在放弃前重试多次。在FreeBSD中该值应设得很高,因为内部中断将发送至所有线程。

·         net_write_timeout

中断写之前等待块写入连接的秒数。又见net_read_timeout。

·         new

在MySQL 4.0中使用该变数来打开4.1中的一些行为,并用于向后相容性。在MySQL 5.1中,它的值一直是OFF.

·         old_passwords

是否伺服器应为MySQL用户帐号使用pre-4.1-style密码。参见A.2.3节,“客户端不支援鉴定协议”

·         one_shot

这不是一个变数,但当设置变数是可以使用它。其描述见13.5.3节,“SET语法”

·         one_shot

这不是一个变数,但当设置变数是可以使用它。其描述见13.5.3节,“SET语法”

·         open_files_limit

作业系统允许mysqld打开的档案的数量。这是系统允许的实际值,可能与您在启动选项中赋给mysqld的值不同。若在系统中MySQL不能更改打开的档案的数量,则该值为0。

·         optimizer_prune_level

在查询最佳化从最佳化器搜索空间裁减低希望局部计划中使用的控制方法。0值禁用该方法,以便最佳化器进行穷举搜索。值为1使最佳化器根据中间方案中得出的行数来裁减方案。

·         optimizer_search_depth

查询最佳化器进行的搜索的最大深度。如果值大于查询中的关系数则查询方案比较佳,但生成查询执行方案需要的时间更长。值大于查询中的关系数则返回的执行方案更快,但方案远没有最佳化。如果设置为0, 系统自动选择合理的值。如果设置为查询中使用的资料表的最大数加2,最佳化器转换为MySQL 5.0.0(和以前的版本)中使用的算法并搜索。

·         pid_file

程序ID (PID)档案的路径名。可以用–pid-file选项设置该变数。

·         plugin_dir

插件目录的路径。在MySQL 5.1.2中加入了该变数。

·         port

伺服器帧听TCP/IP连接所用端口。可以用–port选项设置该变数。

·         preload_buffer_size

重载索引时分配的缓冲区大小。

·         protocol_version

MySQL伺服器使用的客户端/伺服器协议的版本。

·         query_alloc_block_size

为查询分析和执行过程中建立的对象分配的内存块大小。如果内存分段过程中遇到问题,将该变数增加一位会有帮助。

·         query_cache_limit

不要缓存大于该值的结果。预设值是1048576(1MB)。

·         query_cache_min_res_unit

查询缓存分配的最小块的大小(字节)。 预设值是4096(4KB)。关于该变数的调节讯息参见5.13.3节,“查询高速缓冲配置”

·         query_cache_size

为缓存查询结果分配的内存的数量。预设值是0,即禁用查询缓存。请注意即使query_cache_type设置为0也将分配此数量的内存。详细讯息参见5.13.3节,“查询高速缓冲配置”

·         query_cache_type

设置查询缓存类型。设置GLOBAL值可以设置后面的所有客户端连接的类型。客户端可以设置SESSION值以影响他们自己对查询缓存的使用。下面的资料表显示了可能的值:

选项 描述
0或OFF 不要缓存或查询结果。请注意这样不会取消分配的查询缓存区。要想取消,您应将query_cache_size设置为0。
1或ON 缓存除了以SELECT SQL_NO_CACHE开头的所有查询结果。
2或DEMAND 只缓存以SELECT SQL_NO_CACHE开头的查询结果。

该变数预设设为ON。

·         query_cache_wlock_invalidate

一般情况,当客户端对MyISAM资料表进行WRITE锁定时,如果查询结果位于查询缓存中,则其它客户端未被锁定,可以对该资料表进行查询。将该变数设置为1,则可以对资料表进行WRITE锁定,使查询缓存内所有对该资料表进行的查询变得非法。这样当锁定生效时,可以强制其它试图访问资料表的客户端来等待。

·         query_prealloc_size

用于查询分析和执行的固定缓冲区的大小。在查询之间该缓冲区不释放。如果您执行复杂查询,分配更大的query_prealloc_size值可以帮助提高性能,因为它可以降低查询过程中伺服器分配内存的需求。

·         range_alloc_block_size

范围最佳化时分配的块的大小。

·         read_buffer_size

每个线程连续扫瞄时为扫瞄的每个资料表分配的缓冲区的大小(字节)。如果进行多次连续扫瞄,可能需要增加该值, 预设值为131072。

·         read_only

当变数对复制从伺服器设置为ON时,从伺服器不允许更新,除非通过从伺服器的线程或用户拥有SUPER权限。可以确保从伺服器不接受客户端的更新命令。

·         relay_log_purge

当不再需要中继日志时禁用或启用自动清空中继日志。预设值是1(启用)。

·         read_rnd_buffer_size

当排序后按排序后的顺序读取行时,则通过该缓冲区读取行,避免搜索硬盘。将该变数设置为较大的值可以大大改进ORDER BY的性能。但是,这是为每个客户端分配的缓冲区,因此您不应将全域变数设置为较大的值。相反,只为需要运行大查询的客户端更改会话变数。

·         secure_auth

如果用–secure-auth选项启动了MySQL伺服器,它将阻塞有旧格式(4.1之前)密码的所有帐号所发起的连接。在这种情况下,该变数的值为ON,否则为OFF。

如果您想要防止使用旧格式的密码(致使网络通信不安全),您应启用该选项。

如果启用该选项并且授权资料表为pre-4.1格式,伺服器启动失败并且会出现错误。参见A.2.3节,“客户端不支援鉴定协议”

当用于客户端选项时,如果伺服器需要该客户端帐号的旧格式的密码,则客户端拒绝连接该伺服器。

·         server_id

–server-id选项的值。用于主复制伺服器和从复制伺服器。

·         shared_memory

(只用于Windows)伺服器是否允许共享内存连接。

·         shared_memory_base_name

(只用于Windows)说明伺服器是否允许共享内存连接,并为共享内存设置识别符。当在单台机器上运行多个MySQL实例时很有用。

·         skip_external_locking

如果mysqld使用外部锁定,该值为OFF。

·         skip_networking

如果伺服器只允许本地(非TCP/IP)连接,该值为ON。在Unix中,本地连接使用Unix套接字档案。在Windows中,本地连接使用命名管道或共享内存。在NetWare中,只支援TCP/IP连接,因此不要将该变数设置为ON。

·         skip_show_database

防止不具有SHOW DATABASES权限的人们使用SHOW DATABASES语句。如果您担心用户能够看见属于其它用户的资料库,这样设置可以提高安全性。其效果取决于SHOW DATABASES权限:如果变数值为ON,只允许具有SHOW DATABASES权限的人们使用SHOW DATABASES语句,并且该语句将显示所有资料库名。如果值为OFF,允许所有用户执行SHOW DATABASES,但只显示用户具有SHOW DATABASES或其它权限的资料库的名称。

·         slave_compressed_protocol

如果主、从伺服器均支援,确定是否使用从/主压缩协议。

·         slave_load_tmpdir

从伺服器为复制LOAD DATA INFILE语句建立临时档案的目录名。

·         slave_net_timeout

放弃读操作前等待主/从连接的更多资料的等待秒数。

·         slave_skip_errors

从伺服器应跳过(忽视)的复制错误。

·         slave_transaction_retries

如果由于ofInnoDB死锁或超过InnoDB的innodb_lock_wait_timeout或NDBCLUSTER的TransactionDeadlockDetectionTimeout或TransactionInactiveTimeout,复制从伺服器SQL线程未能执行交易,在提示错误并停止前它自动重复slave_transaction_retries次。 预设值是10。

·         slow_launch_time

如果建立线程的时间超过该秒数,伺服器增加Slow_launch_threads状态变数。

·         socket

Unix平台:用于本地客户端连接的套接字档案。预设为/var/lib/mysql/mysql.sock。

Windows:用于本地客户端连接的命名管道名。预设为mysql。

·         sort_buffer_size

每个排序线程分配的缓冲区的大小。增加该值可以加快ORDER BY或GROUP BY操作。参见A.4.4节,“MySQL将临时档案储存在哪里”

·         sql_mode

当前的伺服器SQL模式,可以动态设置。参见5.3.2节,“SQL伺服器模式”

·         sql_slave_skip_counter

从伺服器应跳过的来自主伺服器的事件数。

·         storage_engine

该变数是table_typeis的同义词。在MySQL 5.1中,首选storage_engine。

·         sync_binlog

如果为正,当每个sync_binlog’th写入该二进制日志后,MySQL伺服器将它的二进制日志同步到硬盘上(fdatasync())。请注意如果在autocommit模式,每执行一个语句向二进制日志写入一次,否则每个交易写入一次。 预设值是0,不与硬盘同步。值为1是最安全的选择,因为崩溃时,您最多丢掉二进制日志中的一个语句/交易;但是,这是最慢的选择(除非硬盘有电池备份缓存,从而使同步工作较快)。

·         sync_frm

如果该变数设为1,当建立非临时资料表时它的.frm档案被同步到硬盘上(fdatasync());这样较慢但出现崩溃时较安全。 预设值为1。

·         system_time_zone

伺服器系统时区。当伺服器开始执行时,它继承机器预设时区设置值,可以由运行伺服器的帐号或在启动指令中进行修改。该值用来设置system_time_zone。典型情况用TZ环境变数来指定时区。还可以用mysqld_safe指令的–timez选项来指定。

·         table_cache

所有线程打开的资料表的数目。增大该值可以增加mysqld需要的档案描述符的数量。您可以检查Opened_tables状态变数来检查您是否需要增加资料表缓存。参见5.3.4节,“伺服器状态变数”。如果Opened_tables值较大,并且多次执行FLUSH TABLES(只是强制关闭所有资料表并重新),则应增加table_cache变数的值。

关于资料表缓存的详细讯息,参见7.4.9节,“MySQL如何打开和关闭资料表”

·         table_type

预设资料表类型(储存引擎)。要想在伺服器启动时设置资料表类型,使用–default-table-type选项。参见5.3.1节,“mysqld命令行选项”

·         thread_cache_size

伺服器应缓存多少线程以便重新使用。当客户端中断连接时,如果线程少于thread_cache_size,则客户端的线程被放入缓存。当请求线程时如果允授权以从缓存中重新利用线程,并且只有当缓存空了时才会建立新线程。如果新连接很多,可以增加该变数以提高性能。(一般情况,如果线程执行得很好,性能提高不明显)。检查Connections和Threads_created状态变数的差(详见5.3.4节,“伺服器状态变数”),您可以看见线程缓存的效率。

·         thread_concurrency

在Solaris中,mysqld用该值使用thr_setconcurrency()。该函数使应用程式向线程系统提供需要同时运行的期望的线程数目的提示。

·         thread_stack

每个线程的堆栈大小。用crash-me测试检测出的许多限制取决于该值。 预设值足够大,可以满足普通操作。参见7.1.4节,“MySQL基准套件”

·         time_format

该变数为使用。

·         time_zone

当前的时区。初始值是’SYSTEM'(使用system_time_zone的值),但可以用–default-time-zone选项在伺服器启动时显式指定。

·         tmp_table_size

如果内存内的临时资料表超过该值,MySQL自动将它转换为硬盘上的MyISAM资料表。如果您执行许多高级GROUP BY查询并且有大量内存,则可以增加tmp_table_size的值。

·         tmpdir

保存临时档案和临时资料表的目录。该变数可以设置为几个路径,按round-robin模式使用。在Unix中应该用冒号(‘:’)间隔开路径,在Windows、NetWare和OS/2中用分号(‘;’)。

用来将负荷分散到几个物理硬盘上。如果MySQL伺服器为复制从伺服器,您不应将tmpdir设置为指向基于内存的档案系统上的目录或当伺服器主机重启时声明的目录。复制从伺服器需要部分临时档案来在机器重启后仍可用,以便它可以复制临时资料表或执行LOAD DATA INFILE操作。如果伺服器重启时临时档案夹中的档案丢失了,则复制失败。但是,如果您使用MySQL 4.0.0或更新版本,您可以使用 slave_load_tmpdir变数设置从伺服器的临时目录。在这种情况下,从伺服器不再使用常规tmpdir,说明您可以将tmpdir设置到一个非固定位置。

·         transaction_alloc_block_size

为保存将保存到二进制日志中的交易的查询而分配的内存块的大小(字节)。

·         transaction_prealloc_size

为transaction_alloc_blocks分配的固定缓冲区的大小(字节),在两次查询之间不会释放。使该值足够大,将所有查询固定到一个交易中,可以避免多次malloc()使用。

·         tx_isolation

预设交易隔离级别。预设值为REPEATABLE-READ。

·         updatable_views_with_limit

该变数控制如果更新包含LIMIT子句,是否可以在当前资料表中使用不包含主关键字的视图进行更新。(通常用GUI工具生成这类更新)。更新指UPDATE或DELETE语句。这儿主关键字指PRIMARY KEY,或一个UNIQUE索引,其中任何列不可以包含NULL。

该变数有两个值:

o        1或YES:只发出警告(没有错误消息)。这是 预设值。

o        0或NO:禁止更新。

·         version

伺服器版本号。

·         version_bdb

BDB储存引擎版本。

·         version_comment

configure指令有一个–with-comment选项,当构建MySQL时可以进行注释。该变数包含注释值。

·         version_compile_machine

MySQL构建的机器或架构的类型。

·         version_compile_os

MySQL构建的作业系统的类型。

·         wait_timeout

伺服器关闭非交互连接之前等待活动的秒数。

线上程启动时,根据全域wait_timeout值或全域interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义)。又见interactive_timeout。

5.3.3.1. 动态系统变量

许多伺服器系统变数是动态的,可以使用SET GLOBAL或SET SESSION在运行时设置。您还可以使用SELECT获得它们的值。参见9.4节,“系统变数”

下面的资料表列出了所有动态系统变数。最后1栏说明每个变数是否适用GLOBAL或SESSION(或二者)。

变数名 值型态 型态
autocommit boolean SESSION
big_tables boolean SESSION
binlog_cache_size numeric GLOBAL
bulk_insert_buffer_size numeric GLOBAL | SESSION
character_set_client string GLOBAL | SESSION
character_set_connection string GLOBAL | SESSION
character_set_results string GLOBAL | SESSION
character_set_server string GLOBAL | SESSION
collation_connection string GLOBAL | SESSION
collation_server string GLOBAL | SESSION
completion_type numeric GLOBAL | SESSION
concurrent_insert boolean GLOBAL
connect_timeout numeric GLOBAL
convert_character_set string GLOBAL | SESSION
default_week_format numeric GLOBAL | SESSION
delay_key_write OFF | ON | ALL GLOBAL
delayed_insert_limit numeric GLOBAL
delayed_insert_timeout numeric GLOBAL
delayed_queue_size numeric GLOBAL
div_precision_increment numeric GLOBAL | SESSION
engine_condition_pushdown boolean GLOBAL | SESSION
error_count numeric SESSION
expire_logs_days numeric GLOBAL
flush boolean GLOBAL
flush_time numeric GLOBAL
foreign_key_checks boolean SESSION
ft_boolean_syntax numeric GLOBAL
group_concat_max_len numeric GLOBAL | SESSION
identity numeric SESSION
innodb_autoextend_increment numeric GLOBAL
innodb_concurrency_tickets numeric GLOBAL
innodb_max_dirty_pages_pct numeric GLOBAL
innodb_max_purge_lag numeric GLOBAL
innodb_support_xa boolean GLOBAL | SESSION
innodb_sync_spin_loops numeric GLOBAL
innodb_table_locks boolean GLOBAL | SESSION
innodb_thread_concurrency numeric GLOBAL
innodb_thread_sleep_delay numeric GLOBAL
insert_id boolean SESSION
interactive_timeout numeric GLOBAL | SESSION
join_buffer_size numeric GLOBAL | SESSION
key_buffer_size numeric GLOBAL
last_insert_id numeric SESSION
local_infile boolean GLOBAL
log_warnings numeric GLOBAL
long_query_time numeric GLOBAL | SESSION
low_priority_updates boolean GLOBAL | SESSION
max_allowed_packet numeric GLOBAL | SESSION
max_binlog_cache_size numeric GLOBAL
max_binlog_size numeric GLOBAL
max_connect_errors numeric GLOBAL
max_connections numeric GLOBAL
max_delayed_threads numeric GLOBAL
max_error_count numeric GLOBAL | SESSION
max_heap_table_size numeric GLOBAL | SESSION
max_insert_delayed_threads numeric GLOBAL
max_join_size numeric GLOBAL | SESSION
max_relay_log_size numeric GLOBAL
max_seeks_for_key numeric GLOBAL | SESSION
max_sort_length numeric GLOBAL | SESSION
max_tmp_tables numeric GLOBAL | SESSION
max_user_connections numeric GLOBAL
max_write_lock_count numeric GLOBAL
myisam_stats_method enum GLOBAL | SESSION
multi_read_range numeric GLOBAL | SESSION
myisam_data_pointer_size numeric GLOBAL
log_bin_trust_routine_creators boolean GLOBAL
myisam_max_sort_file_size numeric GLOBAL | SESSION
myisam_repair_threads numeric GLOBAL | SESSION
myisam_sort_buffer_size numeric GLOBAL | SESSION
net_buffer_length numeric GLOBAL | SESSION
net_read_timeout numeric GLOBAL | SESSION
net_retry_count numeric GLOBAL | SESSION
net_write_timeout numeric GLOBAL | SESSION
old_passwords numeric GLOBAL | SESSION
optimizer_prune_level numeric GLOBAL | SESSION
optimizer_search_depth numeric GLOBAL | SESSION
preload_buffer_size numeric GLOBAL | SESSION
query_alloc_block_size numeric GLOBAL | SESSION
query_cache_limit numeric GLOBAL
query_cache_size numeric GLOBAL
query_cache_type enumeration GLOBAL | SESSION
query_cache_wlock_invalidate boolean GLOBAL | SESSION
query_prealloc_size numeric GLOBAL | SESSION
range_alloc_block_size numeric GLOBAL | SESSION
read_buffer_size numeric GLOBAL | SESSION
read_only numeric GLOBAL
read_rnd_buffer_size numeric GLOBAL | SESSION
rpl_recovery_rank numeric GLOBAL
safe_show_database boolean GLOBAL
secure_auth boolean GLOBAL
server_id numeric GLOBAL
slave_compressed_protocol boolean GLOBAL
slave_net_timeout numeric GLOBAL
slave_transaction_retries numeric GLOBAL
slow_launch_time numeric GLOBAL
sort_buffer_size numeric GLOBAL | SESSION
sql_auto_is_null boolean SESSION
sql_big_selects boolean SESSION
sql_big_tables boolean SESSION
sql_buffer_result boolean SESSION
sql_log_bin boolean SESSION
sql_log_off boolean SESSION
sql_log_update boolean SESSION
sql_low_priority_updates boolean GLOBAL | SESSION
sql_max_join_size numeric GLOBAL | SESSION
sql_mode enumeration GLOBAL | SESSION
sql_notes boolean SESSION
sql_quote_show_create boolean SESSION
sql_safe_updates boolean SESSION
sql_select_limit numeric SESSION
sql_slave_skip_counter numeric GLOBAL
updatable_views_with_limit enumeration GLOBAL | SESSION
sql_warnings boolean SESSION
sync_binlog numeric GLOBAL
sync_frm boolean GLOBAL
storage_engine enumeration GLOBAL | SESSION
table_cache numeric GLOBAL
table_type enumeration GLOBAL | SESSION
thread_cache_size numeric GLOBAL
time_zone string GLOBAL | SESSION
timestamp boolean SESSION
tmp_table_size enumeration GLOBAL | SESSION
transaction_alloc_block_size numeric GLOBAL | SESSION
transaction_prealloc_size numeric GLOBAL | SESSION
tx_isolation enumeration GLOBAL | SESSION
unique_checks boolean SESSION
wait_timeout numeric GLOBAL | SESSION
warning_count numeric SESSION

标记为string的变数采用字串值。标记为numeric的变数采用数字值。标记为boolean的变数可以设置为0、1、ON或OFF。标记为enumeration的变数一般情况应设置为该变数的某个可用值,但还可以设置为对应期望的枚举值的数字。对于枚举系统变数,第1个枚举值应对应0。这不同于ENUM列,第1个枚举值对应1。

当ㄚ琪读完这里时,突然有点灵感要看看自己的MySQL伺服器设定有没有最佳化,用phpmyadmin还可以看到下面这样的警告讯息,看来有得调整了。

Qcache_lowmem_prunes 34.0 k 为快取新的查询而被删除的已快取查询的个数,由最近最少使用算法 (LRU) 确定应删除哪个已快取的查询。该资讯可帮助您调整查询快取大小