2016-07-05 16 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

相关问题