Mysql 列等于另一列的高效SQL查询

Mysql 列等于另一列的高效SQL查询,mysql,sql,Mysql,Sql,搜索一个高效(即使用索引)MySQL查询,用于选择行,其中给定行中一列的in值等于同一行中另一列的值,即: SELECT row_id FROM mytable WHERE row_id=some_id 行id是主要索引某些id有自己独立的非唯一索引。有没有一种不需要整个表扫描的方法 [澄清/编辑] 行id和某些行id的类型相同,无符号int。每个都是一列,每个都有一个索引,尽管行id是唯一的,某些行id可能不是。行id和某些行id都是列,对吗?我不认为有一种方法可以保证完全的表扫描是不需要的

搜索一个高效(即使用索引)MySQL查询,用于选择行,其中给定行中一列的in值等于同一行中另一列的值,即:

SELECT row_id FROM mytable WHERE row_id=some_id
行id
是主要索引<代码>某些id有自己独立的非唯一索引。有没有一种不需要整个表扫描的方法

[澄清/编辑]


行id
某些行id
的类型相同,
无符号int
。每个都是一列,每个都有一个索引,尽管
行id
是唯一的,
某些行id
可能不是。

行id
某些行id
都是列,对吗?我不认为有一种方法可以保证完全的表扫描是不需要的,即使有索引(例如,考虑两列是成对的唯一)。在这种情况下,您的索引将提高性能(二进制搜索查找将意味着单个比较将更快),但不会绕过完整的表扫描。

如果行id上有索引,那么如果某个行id是相同类型的,它将使用该行id。目前它做什么,你能发布
explain extended
输出吗?理论上,它应该能够利用这两个索引来实现这一点,但如果MySQL没有这样的优化,我也不会感到惊讶。这也可能取决于这两个索引的基数。如果
某个\u id
的基数较低,则可以进行完整扫描。