2016-07-05 43 views
-1

我有機會製作一張表,最終可能包含數百萬甚至數十億條記錄......我知道大數據,我應該朝着像Mongo/node.js這樣的東西走,但這是一個原型,我不知道還沒有足夠的時間來學習。mySQL更快地搜索單個列?或兩列串聯?或使用加入?

MySQL表將以X和Y方式保存座標。 這既可以是這樣的:

| id| x| y| 
| 0| 105| -12| 
| 1| 23| 18| 
| 2|-529| -1| 

或像這樣:

| id|  coord| 
| 0| x105y-12| 
| 1| x23y18| 
| 2| x-529y-1| 

現在,會是更快,使雙列,要麼;通過X

  1. 搜索,然後由Y
  2. 搜索與搜索JOIN爲X &Ÿ

或者,它會更快第二個表來搜索單個列?

+0

總是firts ..讓你的數據正確分離..的時間選擇一列或兩個是相同的。 – scaisEdge

+0

@scaisEdge,很高興知道!謝謝! – ntgCleaner

回答

1

將數據放入兩列肯定會更快,而不是最重要的是您可以將它們定義爲數字(vs alpha)數據類型。

可能要創建對兩個數據列的多列,但索引是一個複雜的問題,特別是如果你沒有進入百萬甚至上億的紀錄水平,而且它有很多因素。對於一個小原型,這不應該是一個問題。

你當然可能想研究一個沒有sql的解決方案(不知道Node.js與它有什麼關係),特別是對於地理座標系,請查看新的Geo API in Redis

(注意MySQL的一個JOIN通常是指跨多個表搜索,所以你可能需要使用不同的語言。)

1

我會去第一個選項。如果搜索速度很快,空間不是問題,那麼我也會在這兩列中使用索引。

+0

良好的通話,謝謝! – ntgCleaner