C# MySQL中的数据库每日计数器
我想在MySQL数据库中创建计数器,存储特定日期、月份和年份中每个产品的视图数 问题是我有大约2000种产品。我考虑使用以下模式:C# MySQL中的数据库每日计数器,c#,mysql,sql,sql-update,database-schema,C#,Mysql,Sql,Sql Update,Database Schema,我想在MySQL数据库中创建计数器,存储特定日期、月份和年份中每个产品的视图数 问题是我有大约2000种产品。我考虑使用以下模式: id (BIGINT) year (INT[4]) month (TINYINT) day (TINYINT) product_id (INT) pageviews (BIGINT) 该解决方案的问题是,如果在最坏的情况下,每天都查看每个产品,那么我的数据库中每天将有2000行。乘以36天,我每个月将有72000天 我想知道是否有更好的方法来实现这一点
id (BIGINT)
year (INT[4])
month (TINYINT)
day (TINYINT)
product_id (INT)
pageviews (BIGINT)
该解决方案的问题是,如果在最坏的情况下,每天都查看每个产品,那么我的数据库中每天将有2000行。乘以36天,我每个月将有72000天
我想知道是否有更好的方法来实现这一点。我认为日常数据将只作为应用程序变量(在.NET中开发)和ArrayList保存在内存中。如果我选择这个方向,我将拥有更少的行/数据,每月2000行
我真的想保持每天累积的页面浏览量。顺便说一句,预览只是为了说明,我将存储不同的数据,但这些数据将非常频繁地更新
如果我使用daily专栏,它会经常更新,几乎每2-5秒更新一次。我打算通过从Javascript调用ASP.NET Web服务来更新MySQL async,传递产品id并增加计数器+1。这是为了防止应用程序等待更新发生
我还想知道估计表的大小。如果我做对了:
BIGINT=8字节
Datetime=10字节
INT-4字节
^如果我决定使用datatime列而不是年/月/日
30字节*2000=60000字节
60KB(约)*30天=180KB月
180KB月*12个月=2160KB/年
我做对了吗?好的,我在数据库设计方面不是很好,但我知道很多。。。 你应该问问自己,你想把这些2K产品的每日点击量保存多久 如果你只想拿着它们一周,那么你可以计算它的大小(如果你想拿着它们一个月的话) 如果您想将其保存一个月,那么您可以每月创建一个表,并将每日点击量的数据保存到该表中,然后将其汇总,这样每个表中只有2K行 或者,您可以使用一个“仓库”表,该表将保存每个月的所有点击次数,并且在您对每个月的数据进行汇总后,每个月的数据都将复制到该仓库表中 如果您希望无限期地保存这些点击,那么据我所知,这是一种方法(同样不是数据库设计大师) 同样,如果你想保存一个月的点击率,这也是你应该做的 希望我能帮助你,
Sagi.好的,我在数据库设计方面不是很好,但我知道很多。。。 你应该问问自己,你想把这些2K产品的每日点击量保存多久 如果你只想拿着它们一周,那么你可以计算它的大小(如果你想拿着它们一个月的话) 如果您想将其保存一个月,那么您可以每月创建一个表,并将每日点击量的数据保存到该表中,然后将其汇总,这样每个表中只有2K行 或者,您可以使用一个“仓库”表,该表将保存每个月的所有点击次数,并且在您对每个月的数据进行汇总后,每个月的数据都将复制到该仓库表中 如果您希望无限期地保存这些点击,那么据我所知,这是一种方法(同样不是数据库设计大师) 同样,如果你想保存一个月的点击率,这也是你应该做的 希望我能帮助你,
Sagi.你真的应该使用
日期列来存储年、月和日。由于您每天都需要每个产品的数据,我认为没有更简单的解决方案。它会更高效、更高效吗?它可能会更高效,但更重要的是它会让您的生活更简单:)您的月份有36天?您真的应该使用日期列来存储年、月和日。由于您每天都需要每种产品的数据,我认为没有更简单的解决方案。它会更高效、更高效吗?它可能会更高效,但更重要的是它会让您的生活更简单:)您的月份有36天?