我有一个数据库,由以下列组成
id
, 一个看起来像这样的字符串8b28347448d3fff
(15 长)x
, 小数 (8,6)y
, 小数 (9,6)
所有列上都有索引。现在,我想找到匹配的对。在表侧foo
,最多可以有 300k 行。我能想到的查询表的方法有两种。首先,这个:
使用WHERE ... IN
. 在查询方面,可能有多达 11k 个元素possible_matching_indexes
。
SELECT id FROM foo WHERE id IN (possible_matching_indexes);
另一个是这个,它只会在查询端产生四个值( x1
, x2
, y1
, )y2
SELECT id FROM foo WHERE (x BETWEEN x1 and x2) AND (x BETWEEN y1 and y2);
哪一个更有可能表现更好?我正在使用 SQLite 数据库。但我想这可以从任何基于 SQL 的数据库中估计出来?