【发布时间】:2015-11-14 00:52:22
【问题描述】:
我一直在学习查询优化,提高查询性能,但总的来说,如果我们创建一个查询,我们如何知道这是否是一个明智的查询。
我知道我们可以在下面看到执行时间,但是如果没有大量数据,这个时间不会给出明确的指示。通常,当我们创建一个新查询时,我们没有太多数据要检查。
我已经了解了子句和命令的性能。但是有什么东西可以用来检查查询的性能吗?这里的性能不是执行时间,它表示查询是否“ok”,不依赖数据。
因为我们无法在实时数据库中创建那么多数据。
【问题讨论】:
-
你知道......这个世界上没有什么是完美的...... :) “过早的优化是万恶之源”
-
在学习查询优化时,您应该了解的最重要的事情之一是“正确的”查询始终依赖于数据。虽然查询 A 在小型数据集上的性能可能比查询 B 好,但在大型数据集上可能正好相反。
-
查询优化就像艺术你需要了解MySQL引擎的某些部分。 MySQL 查询优化器可以更改对已更改数据的查询执行计划,对于 JOINS 始终如此。 MySQL Query Optimizer 可以访问
wrongorder 中的表注意,当您不使用 GOUP BY 或 ORDER BY 时,这还不错。但是如果你这样做,MYSQL 需要使用临时表和文件排序来获得正确的结果,这会降低查询的性能。 -
@Devart - 您的商业产品如何教 OP 如何学习查询优化?
-
@N.B.它是一个工具,它不是手册。该工具将允许简单快速地更改查询、测量性能和查看结果。所以,它甚至可以教。
标签: mysql sql database database-design