搜索高效(即使用索引)MySQL查询,用于选择给定行中一列值的行等于同一行中另一列的值,即:
SELECT row_id FROM mytable WHERE row_id=some_id
row_id
是PRIMARY索引。 some_id
有自己独立的非唯一索引。有没有办法在不需要进行全表扫描的情况下执行此操作?
[澄清/编辑]
row_id
和some_id
属于同一类型unsigned int
。每个都是一列,每个都有一个索引,虽然row_id
是唯一的,some_id
可能不是。
答案 0 :(得分:0)
row_id
和some_id
都是列,对吗?我不认为有一种方法可以保证不需要全表扫描,即使有索引(例如,考虑两列都是成对唯一的)。在这种情况下,AFAIK你的索引会提高性能,(二进制搜索查找意味着个人比较会更快),但不会绕过全表扫描。