结果集内存

发布于 2024-11-19 14:22:13 字数 404 浏览 1 评论 0原文

我有 100k 记录的 ResultSet,每条记录有 5 个单元格,其中 2 个单元格为 int 数据类型,3 个单元格为 Varchar (100) 数据类型

我的问题是,当执行查询时,如何将内存分配给这些数据类型的结果集 专门用于 varchar 数据类型的java 程序

是所有 varchar(100) 单元格都具有 100 个字符的相同内存,或者它取决于每个 varchar(100) 单元格包含的数据,

例如说我有以下记录,varchar(100) 上有两个单元格,

------------------------
| "abc" | | "pqrstuv" |
------------------------

这里的内存大小是 10 个字符还是 200 个字符?

问候

I have ResultSet of 100k records with each record has 5 cell 2 of them are of int data type and 3 are of Varchar (100) data type

my question is how the memory is allocated to resultset for these data types when a query is executed from a java program

specially to varchar data type is all the varchar(100) cells have same memory of 100 chars or it depends on the data each varchar(100) cell contains

for example say I have the following record with two cell on varchar(100)

------------------------
| "abc" | | "pqrstuv" |
------------------------

is memory size here 10 chars or 200 chars?

regards

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

好多鱼好多余 2024-11-26 14:22:13

“varchar”类型用于可变长度字符串。因此,您的字符串将仅采用字符串中实际字符数的空间量(因此在您的示例中为 10 个字符)。如果您将这些字段定义为“char”(固定长度),那么它们每个将占用 100 个字符。

the "varchar" type is for variable length strings. thus, your strings will only take the amount of space as the number of characters actually in the string (so 10 chars in your example). if you defined those fields as just "char" (fixed length), then they would take up 100 characters each.

千鲤 2024-11-26 14:22:13

大多数 JDBC 驱动程序都支持结果集分页。这意味着一次仅加载结果的一部分。内部使用的内存量不太重要,因为它只是数据的子集。如果保留所有记录,则使用的数据量更为重要。当您保留 String 时,每个字符将使用 1-2 个字节(加上一些开销),具体取决于您的 JVM。

无论哪种方式,除非您有移动设备,否则与您拥有的内存相比,所使用的内存可能非常小。

Most JDBC drivers support paging of result sets. This means only a portion of results are loaded at a time. The amount of memory used internal is unlikely to matter because it will only ever be a sub-set of the data. If you keep all the records, the amount of data used is more important. When you retain a String it will use 1-2 bytes per character (plus some overhead) depending on your JVM.

Either way, unless you have a mobile device the memory used is likely to be very small compared to the memory you have.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文