我应该合并MySQL表吗?

我应该合并MySQL表吗?,mysql,Mysql,我目前有一个用于GPS跟踪的大型数据库。每次一个新人开始向我发送位置信息时,我都会创建一个具有唯一名称的新数据库。然后我开始向这个表中添加行。有诸如高度、经度、纬度等列 情况是,其中一些表可能包含超过100000个位置(行)。我现在在数据库中还有大约600个表。搜索所有这些表是相当困难的,它需要我运行一个“showtables”查询,然后对每个表运行一个查询,以获得所需的数据 问题可以归结为:我是否应该将所有这些表合并成一个可以包含1000000多行的巨大表。然后,我将添加一列来分隔不同的用户。

我目前有一个用于GPS跟踪的大型数据库。每次一个新人开始向我发送位置信息时,我都会创建一个具有唯一名称的新数据库。然后我开始向这个表中添加行。有诸如高度、经度、纬度等列

情况是,其中一些表可能包含超过100000个位置(行)。我现在在数据库中还有大约600个表。搜索所有这些表是相当困难的,它需要我运行一个“showtables”查询,然后对每个表运行一个查询,以获得所需的数据

问题可以归结为:我是否应该将所有这些表合并成一个可以包含1000000多行的巨大表。然后,我将添加一列来分隔不同的用户。这将使运行查询更加容易,因为我现在需要一个查询而不是多个查询


这会使系统更快还是更慢?您需要更多信息才能回答这个问题吗?

1000000行+适当的索引可能可以,但由于行会不断增加,您很快就会等待执行查询。我认为这不是一个好主意。您可以做的是,创建这样的表,将所有行插入其中,并尝试对其进行一些查询。你将亲眼目睹它的表现。然后,可以确定的是,生成一些随机数据,然后增加几百万(达到预期大小)。如果它仍然表现良好,那么你就有了答案。查询速度也很大程度上取决于硬件,因此回答此类问题并不容易。尝试做一些测试。

如果您打算定期同时搜索所有表,那么几乎可以肯定,组合这些表并添加一个用户标识符列是值得的。将索引添加到此表(针对您经常搜索的列)将大大提高性能


单个查询几乎总是比跨不同表的多个查询快,尤其是在对结果进行排序时。

为什么不创建一个包含位置id、海拔高度、经度和纬度的表呢。有一个结合海拔、经度和纬度的唯一键

有另一个表,可能是user\u location,带有user\u id和location\u id。location\u id是上表的外键

由于user_id和location_id是它们各自表中的主键,这意味着自动索引,因此它应该不会有问题


位置表也会有一段时间饱和。

一条记录有多大?总的来说,如果您使用适当的索引,1m行应该不会有问题。我同意,但它会更快还是更慢?一条记录大约有8列,所有记录都没有太多数据(没有文本块等)。我可以按照您的建议创建这样一个表,然后试一试。