MySQL Variables myisam_stats_method 数据库 参数变量解释及正确配置使用
本站中文解释
Myisam_stats_method用于指定MyISAM表的统计信息的收集方式,它影响 MyISAM 表的优化查询性能,该参数可以接受如下三个取值:
– 1:仅统计表中每个列的信息,该参数可以提高表复制,碎片压缩操作的速度,但会导致查询性能下降;
– 2:统计每个列的信息,并更新索引的统计信息,这是 MySQL 默认的参数,可以提升查询性能,但碎片压缩,表复制等操作会变慢。
– 0:不统计任何统计信息。这种情况下,MySQL 不会收集任何 MyISAM 的统计信息,会大大提高复制,碎片压缩等操作的速度,但会对查询性能有负面影响。
MySQL参数 Myisam_stats_method 的设置方法为:
全局范围:
在my.cnf中添加如下行:
myisam_stats_method=2
然后使用命令 reload 或者 restart 重启 MySQL 服务:
service mysql reload
或者
service mysql restart
会话范围:
使用如下命令:
SET GLOBAL myisam_stats_method = 2;
然后使用 FLUSH TABLES 命令,使 SQL 会话范围的设置生效:
FLUSH TABLES;
官方英文解释
myisam_stats_method
Command-Line Format | --myisam-stats-method=name |
---|---|
System Variable | myisam_stats_method |
Scope | Global, Session |
Dynamic | Yes |
Type | Enumeration |
Default Value | nulls_unequal |
Valid Values |
|
How the server treats NULL
values when
collecting statistics about the distribution of index values
for MyISAM
tables. This variable has three
possible values, nulls_equal
,
nulls_unequal
, and
nulls_ignored
. For
nulls_equal
, all NULL
index values are considered equal and form a single value
group that has a size equal to the number of
NULL
values. For
nulls_unequal
, NULL
values are considered unequal, and each
NULL
forms a distinct value group of size
1. For nulls_ignored
,
NULL
values are ignored.
The method that is used for generating table statistics
influences how the optimizer chooses indexes for query
execution, as described in Section 8.3.7, “InnoDB and MyISAM Index Statistics Collection”.