Performance difference for STRING(MAX)?
Asked Answered
I

1

5

Is there a performance penalty (or improvement) for using STRING(MAX) instead of some fixed limit like STRING(256)?

Iridectomy answered 30/8, 2017 at 15:56 Comment(0)
I
9

Nope. STRING(MAX) is treated exactly the same as strings of limited length under-the-hood. Same applies for BYTES(MAX). So there is no performance difference.

The main reason to use a fixed limit is if there are logical constraints you want to enforce in your schema. For example: if you are using a STRING to store 2-letter country codes, then you might want to using STRING(2).

Note that, according to the docs, you can always change the length limit for a string, except with one caveat:

  • Supported Schema Updates: Increase or decrease the length limit for a STRING or BYTES type (including to MAX), unless it is a primary key column inherited by one or more child tables.
Iridectomy answered 30/8, 2017 at 15:56 Comment(3)
Do you know what that MAX is?Kirsti
I believe the answer is 10MiB (~10M bytes). Per: cloud.google.com/spanner/docs/data-types#string_type "The maximum size of a column value is 10MiB, which applies to scalar and array types."Iridectomy
Duh, I was looking everywhere for that! Assumed it would be lower on the docs hahaKirsti

© 2022 - 2024 — McMap. All rights reserved.