如何知道 MariaDB 引擎的行为

how to know the behavior of MariaDB engine

我是 MySQL/MariaDB 的新手。

我正在比较 MS SQL 和 MariaDB 中存储过程的性能,发现 MariaDB 的性能比 MS SQL 慢。我发现相同的查询在 MariaDB 中比在 MSSQL 中花费更多的时间。事实上,我不得不在存储过程中的临时 table 上添加一个索引,这在 MS SQL 中是不需要的。为什么会有这样的结果。 我如何以及在哪里可以更深入地了解 MariadB 引擎的行为,如执行计划(详细)。哪个性能监控工具(开源)可以帮助我处理慢查询以及除慢查询日志之外的优化。

我如何为以下代码使用 EXPLAIN 创建临时 TABLE tmp_ABC AS SELECT * 来自 tbl_ABC

此致, 索米克沃拉

获取执行计划信息的三种方式(按详细顺序排列):

  • EXPLAIN SELECT ...
  • EXPLAIN FORMAT=JSON SELECT ...
  • 打开“优化器跟踪”。

EXPLAIN 适用于 SELECT 以外的某些查询。如果它不适用于您的 CREATE,只需将它应用于 SELECT。 (无论哪种情况,that 查询都会有一个非常简单的解释。)

innodb_buffer_pool_size是MariaDB中最重要的设置;它大约是可用 RAM 的 70%?

在某些情况下,

MySQL/MariaDB 将 auto-generate 索引派生表 (FROM ( SELECT ... ));但不在临时表上。

有几种技术可以避免对显式 (CREATE TEMPORARY TABLE ...) 临时表的需求;您愿意向我们展示查询吗?我们可能会有一些提示。

由于 MSSql 和 MariaDB 之间存在许多结构差异,可能会有一些查询 运行 更快或更慢。

向我们提供您在 MariaDB 中较慢的查询之一;我们也许可以加快速度。