0

我有一个 MYSQL 问题:任何人都可以告诉我如何衡量一个IN()子句是否性能不佳。

到目前为止,我有一个包含大约 5.000 行的表,并且IN()将检查多达 100 个 ID。在接下来的两年里,它可能会增长到 50.000。

谢谢

笔记

我的nonperformant意思是,要有效,缓慢,表现不佳,...

更新 这是一个决策发现问题;所以EXPLAINMySql 中的命令没有回答我的问题。性能不好的时候,我自己也能看到。但是我想在我开始设计之前知道它,这可能是错误的......

更新 我正在寻找一种通用的测量技术。

4

2 回答 2

0

您可以使用 mysql explain 语句来获取查询计划。只需在您的选择前输入说明并查看它的内容。您将需要学习如何阅读它,但这对于确定查询是否与您期望的一样快非常有帮助。

mysql 也没有最好的查询优化器。根据我的经验,有时运行 100 个简单快速的查询比运行复杂的连接要快。这是一种罕见的情况,但我从中获得了性能提升

于 2012-09-12T14:08:37.717 回答
0

您将使用该EXPLAIN语句来检查查询的执行方式。它显示来自优化器的有关查询执行计划、它将如何处理语句以及表如何连接以及以何种顺序连接的信息。

很多时候JOIN可以使用 a 代替 a IN,这应该会产生更好的性能。此外,索引对查询的运行速度有很大影响。

EXPLAIN我们至少需要查看您的查询。

于 2012-09-12T14:16:38.560 回答