我有机会创建一个可能包含数百万甚至数十亿条记录的表...我知道大数据,我应该朝着类似Mongo / node.js的方向发展,但这是一个原型而我没有足够的时间来学习。
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|
现在,制作双列会更快;
或者搜索第二个表中的单个列会更快吗?
答案 0 :(得分:1)
我会选择第一个选项。如果搜索速度快且空间不是问题,我也会在这两列上有索引。
答案 1 :(得分:1)
将数据放在两列中肯定会更快,尤其是您可以将它们定义为数字(vs alpha)数据类型。
你可能想要在两个数据列上创建 a 多列,但索引是一个复杂的问题,特别是如果你确实进入数百万或数十亿记录水平,它有很多因素。对于小型原型,它应该不是问题。
你当然可能想要研究一个无sql的解决方案(不确定Node.js与它有什么关系),特别是对于地理坐标,请查看新的Geo API in Redis。
(请注意,MySql中的JOIN通常是指跨多个表进行搜索,因此您可能希望使用不同的语言。)