C# 将车辆跟踪数据存储在不同的表中,并在指定的时间后删除许多数据

C# 将车辆跟踪数据存储在不同的表中,并在指定的时间后删除许多数据,c#,sql,asp.net-mvc,C#,Sql,Asp.net Mvc,我正在开发车辆跟踪,我认为在很短的时间内,数据将是巨大的,因为gps设备每天发送许多数据,当我们跟踪许多设备时,这些数据将是巨大的。。。。。。 我想为这些数据创建一些表格,(表格用于当天的数据,表格用于3天的数据,表格用于1周的数据,表格用于3周的数据,表格用于1个月的数据和3个月后的数据,我们得到备份) 但是为了实现这个场景,我不知道如何在3个月后删除许多数据并将相关数据存储到self表中 thnx作为您的指南您可以存储日、周、月和年,并使用所有这些列加上用户ID的组合索引。希望它有帮助如果您

我正在开发车辆跟踪,我认为在很短的时间内,数据将是巨大的,因为gps设备每天发送许多数据,当我们跟踪许多设备时,这些数据将是巨大的。。。。。。 我想为这些数据创建一些表格,(表格用于当天的数据,表格用于3天的数据,表格用于1周的数据,表格用于3周的数据,表格用于1个月的数据和3个月后的数据,我们得到备份) 但是为了实现这个场景,我不知道如何在3个月后删除许多数据并将相关数据存储到self表中
thnx作为您的指南

您可以存储日、周、月和年,并使用所有这些列加上用户ID的组合索引。希望它有帮助

如果您对大块数据存在删除问题(或备份问题),那么解决方案是对数据进行分区,在您的情况下,可能是按天进行分区

每个分区都存储在单独的位置。你可以把它看作一个文件。删除分区非常快。另一方面,删除行可能非常昂贵,因为每个删除的行都需要记录。在某些数据库中,这可能会填满日志空间,从而阻止删除

另一方面,在查询时分区可能不可见。它们还可以加快查询速度,因此仅使用一天数据的查询只需要读取该数据。它们还与索引兼容


您尚未指定数据库,但几乎所有数据库都支持分区或类似功能。

thnx for replay,但我不希望所有数据都存储在一个表中,并且数据库中的数据超过一年我同意。您可以创建一个名为currentyear的表,另一个表将具有archive.an。使用上面两个表中引用的索引,当你抱怨1年后怎么能删除这些大数据,因为备份后我不想让这些数据留在数据库里。你可以使用一个定期执行的存储过程来迁移不属于当前年份的每一列。这有助于你的回放,我使用了sql server 2017,我想把一年的数据分成4个部分或4个表,每个表包含3个月的信息,在每个新章节之后,新数据被输入到新表中,之前的表被完全删除。你有更好的想法吗?@mohamad。我认为答案很清楚。一张桌子。多个分区。