• 环境基于Centos7.6

1.server_cost表作用

server_cost包含一般服务器操作的优化器成本估算。

server_cost, engine_cost优化器成本模型使用包含查询执行过程中发生的操作的成本估计信息的表。

优化器具有在执行计划构建期间使用的成本估算数据库。这些估计值存储在server_cost和engine_cost表中的mysql系统数据库,可随时配置。

这些表的目的是使优化器在试图达成查询执行计划时能够轻松地调整成本估计。

server_cost*优化一般服务器操作的费用估计数。

2.server_costt详解

1
2
3
4
5
6
7
8
9
10
11
12
mysql> select * from server_cost;
+------------------------------+------------+---------------------+---------+
| cost_name | cost_value | last_update | comment |
+------------------------------+------------+---------------------+---------+
| disk_temptable_create_cost | NULL | 2021-03-31 01:16:24 | NULL |
| disk_temptable_row_cost | NULL | 2021-03-31 01:16:24 | NULL |
| key_compare_cost | NULL | 2021-03-31 01:16:24 | NULL |
| memory_temptable_create_cost | NULL | 2021-03-31 01:16:24 | NULL |
| memory_temptable_row_cost | NULL | 2021-03-31 01:16:24 | NULL |
| row_evaluate_cost | NULL | 2021-03-31 01:16:24 | NULL |
+------------------------------+------------+---------------------+---------+
6 rows in set (0.00 sec)

cost_name
成本模型中使用的成本估算的名称。名称不区分大小写。如果服务器在读取此表时不识别成本名称,则会将警告写入错误日志。

cost_value
成本估算值。如果值是非-NULL,服务器使用它作为成本。否则,它将使用默认估计值(已编译的-in值)。DBA可以通过更新此列来更改成本估算。如果服务器在读取此表时发现成本值无效(非正),则会将警告写入错误日志。覆盖默认成本估计(用于指定NULL),将成本设置为非-NULL价值。若要恢复为默认值,请将值设置为NULL。然后执行FLUSH OPTIMIZER_COSTS告诉服务器重新读取成本表。

last_update
最后一行更新的时间。

comment
与成本估计相关的描述性评论。