[MySQL8.0]通过OptimizerTrace概览查询优化

通过OptimizerTrace可以概览MySQL查询优化过程。
TPC-HQ4包括总结和子调查问卷。
关注两个问题:1.协调员如何制定执行计划?2.制定实施计划的过程是如何进行的?要使用optimize功能,首先打开当前会话的optimizer_trace,获取执行SQL后的trace信息。
OptimizerTrace的工作原理是通过在关键代码跟踪中埋点来收集需要跟踪的信息,例如将跟踪结果用Opt_trace_object和Opt_trace_array埋入一个json对象中。
Optimizertrace结果展示了MySQL中的SQL优化过程,大致经历了三个阶段:join_preparation、join_optimization和join_execution。
步骤一:JOIN_PREPARATION——包括解析SQL语句、优化子查询、常量消除、消除冗余语句等。
步骤2:join_optimization-生成查询执行计划,例如查询重写、基于成本的联接优化和路由路径选择。
步骤3:join_execution-负责实际的查询执行。
具体优化步骤包括SQL解析、子查询修改、本地优化、连接顺序优化、执行计划评估、条件优化、中间输出过滤、最终执行计划优化、临时表分配等。
通过optimizertrace,我们可以更深入地了解MySQL查询优化过程,包括join_preparation、join_optimization和join_execution的详细步骤,系统地了解查询优化的细节。

mysql8.0.31在macosmonterey系统的安装

要在macosmonterey系统上安装MySQL8.0.31,首先确保您下载了x86版本的MySQL。
然后根据安装向导进行安装特别注意在配置阶段输入root用户的密码并记住,因为后续步骤中会用到这个密码。
安装完成后,您可以通过系统偏好设置查看安装状态。
在终端中,输入“/usr/local/mysql/bin/mysql-uroot-p”。
然后输入之前在root用户下输入的密码。
最后,执行命令“SHOWDATABASES;”检查MySQL是否已配置。

8.0.31与8.0.27版mysql区别?

版本号通常用于识别MySQL中数据库软件的版本和修复。
在这个问题中,我们将重点关注两个不同的版本:8.0.31和8.0.27。
这两个版本之间存在一些差异,包括新功能和安全修复。

新功能:

版本8.0.31引入了以下新功能:

InnoDB存储引擎中实现了行级锁定,以提高并发性能。

支持Row-LevelPurgeRows命令清除冗余行数据。

8.0.27版本中没有添加新功能。

安全修复:

版本8.0.31修复了以下安全问题:

强制用户更新datadir文件以修复潜在的安全漏洞。

引入了更严格的授权管理机制;集群高级功能用于防止未经授权的用户访问存储引擎,支持强密码策略并确保数据完整性。

版本8.0.27修复了一些安全问题。

简而言之,8.0.31版本比8.0.27版本更加健壮;它用于引入新功能并解决安全问题。
这是它可能会导致更多的不稳定,并且可能与某些硬件设备不兼容。
但对于一般的开发和生产环境;旧版本可能是更实用和稳定的选择。