在mysql中搜索两个字段的时间复杂度是多少

时间:2016-07-29 17:24:29

标签: mysql sql time-complexity

如果我有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个字段上,它们如何搜索。

1 个答案:

答案 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