我有一個數據庫,其中有四列,分別對應起始和結束位置的地理座標x,y。列是:IN子句中的MySQL多列
- X0
- Y0
- X1
- Y1
我對這些四列與序列X0,Y0,X1,Y1的索引。
我有一個大約一百個地理組合的列表。我將如何去有效地查詢這些數據?
我謹this SO answer的建議做這樣的事情,但它僅適用於Oracle數據庫,MySQL的不是:
SELECT * FROM my_table WHERE (x0, y0, x1, y1) IN ((4, 3, 5, 6), ... ,(9, 3, 2, 1));
我想有可能做的事指數?什麼是最好的方法(即:最快的查詢)?謝謝你的幫助!
注:
- 我不能更改數據庫的模式
- 我對100'000'000行
編輯: 代碼原封不動地竟是工作,但它非常緩慢,並沒有利用指數(因爲我們有一箇舊版本的MySQL v5.6.27
)。
這應該在MySQL的正常工作,你試過嗎?我看到的第一條評論說,你所關聯的問題來自5年前。 – Uueerdo
只要你知道,你**可以**在MySQL中做到這一點。看到我的測試:http://sqlfiddle.com/#!9/7b5c1/1 – sorayadragon