• 环境基于Centos7.6

1.engine_cost表作用

engine_cost包含特定于特定存储引擎的操作的估计。

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

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

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

engine_cost*优化特定存储引擎特定操作的成本估计。

2.engine_cost详解

1
2
3
4
5
6
7
8
mysql> select * from engine_cost;
+-------------+-------------+------------------------+------------+---------------------+---------+
| engine_name | device_type | cost_name | cost_value | last_update | comment |
+-------------+-------------+------------------------+------------+---------------------+---------+
| default | 0 | io_block_read_cost | NULL | 2021-03-31 01:16:24 | NULL |
| default | 0 | memory_block_read_cost | NULL | 2021-03-31 01:16:24 | NULL |
+-------------+-------------+------------------------+------------+---------------------+---------+
2 rows in set (0.00 sec)

engine_name
本成本估算所适用的存储引擎的名称。名称不区分大小写。如果值是default,它适用于所有没有自己命名条目的存储引擎。如果服务器在读取此表时不识别引擎名称,则会将警告写入错误日志。

device_type
适用于此成本估计的设备类型。该列用于指定不同存储设备类型(例如硬盘驱动器与固态驱动器)的不同成本估算。目前,没有使用此信息,并且0是唯一的允许值覆盖默认成本估计(用于指定NULL),将成本设置为非-NULL价值。

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

cost_value
成本估算值。如果值是非-NULL,服务器使用它作为成本。否则,它将使用默认估计值(已编译的-in值)。DBA可以通过更新此列来更改成本估算。如果服务器在读取此表时发现成本值无效(非正),则会将警告写入。

last_update
最后一行更新的时间。
comment
与成本估计相关的描述性评论。