如果我有2个索引字段(X,Y都是双打)并且我有查询
SELECT *
FROM locations LIMIT 10
WHERE x < 25.65434 AND x > 23.54654
AND y < 37.67345 AND y > 32.98564
此查询的时间复杂度是多少。如果只有一个查询它将是O(log(n))但是假设有2个字段我想不出任何可以在O(log(n))中解决的数据结构。 sql数据库如何存储索引,以及如果查询位于如上所述的2个字段上,它们如何搜索。
答案 0 :(得分:0)
<强> SQL Fiddle Demo 强>
只是为了给你一个想法。
ROWS | MATCH | TIME
1.000.000 | 149 rows | 3 ms
100.000 | 15 rows | 1 ms
10.000 | 2 rows | 1 ms