测量IN子句是否会获得不符合要求(通用) - MySql?

时间:2012-09-12 13:24:20

标签: mysql performance

我有一个MYSQL问题: 任何人都可以告诉我如何衡量IN()条款是否会出现不履行义务。

到目前为止,我有一个包含大约5.000行的表,IN()将检查最多100个ID。它可能在未来两年内增长到50.000。

由于

注意

nonperformant我的意思是,要有效,缓慢,糟糕的表现,......

更新 这是一个决策问题;所以MySql中的EXPLAIN命令不回答我的问题。当性能不好时,我自己也可以看到它。但是在我开始以某种方式设计之前我想知道它,这可能是错误的......

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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