是否有可能获得特定表使用的磁盘空间量?假设我的表中存有一百万个用户,我想知道存储所有用户和/或其中一个用户需要多少空间。
更新:
我打算使用redis缓存内存中某个特定表的某些字段,以便快速检索所需的数据。所以我需要计算它将占用多少空间,因此它是否适合存储器。当然这取决于我在表格中使用的数据类型,但如果一个表由几十个字段组成,则需要花费太多时间来逐一计算。
虽然MySQL不适合SQL Server,但确实存在这样的答案:{{3}}你可以查看它以了解我的意思。
答案 0 :(得分:2)
如果您有SSMS,则可以右键单击对象资源管理器中的表,转到“属性”,然后查看“存储”页面。字段数据空间是该表中数据的大小,但它可能不包括该表的一些开销成本。
答案 1 :(得分:0)
我们需要查看完整的数据库架构,包括表格和列以及所有字段'数据类型。没有这些信息,这只是一个幸运的猜测。以下是每种数据类型大小的有用备忘单:https://www.connectionstrings.com/sql-server-2012-data-types-reference/
然后你只需要做数学并计算X
所需的空间,这是你的记录数
答案 2 :(得分:0)
这实际上是一个扩展评论,因为它没有直接回答这个问题。
对于大多数用途,您只需使用列的大小,将它们一起添加,然后乘以行数。这低估了估计,但这是合理的。并且(取决于您处理类型的方式)可能是对导出数据大小的合理估计。
也就是说,表的存储是一件困难的事情。以下是您需要考虑的一些因素:
varchar(max)
。而且,毫无疑问,我已经遗漏了许多其他相关的内部细节(here是一个从页面布局开始的地方)。
换句话说,没有一个简单的答案。两个不同系统上的等效表可能占用非常不同的空间。对于"同样的#34;在不同时间在同一系统上的表。
使用数据库时的一般答案是,您需要比行数*行大小更多的空间 - 我似乎记得在一个时间点使用因子3。通常,存储非常便宜,因此这不是使用数据库的限制因素。