VARCHAR(255) 的最大可能大小是多少?

What is the maximum possible size of VARCHAR(255)?

在 Drupal 文档页面 (https://www.drupal.org/docs/7/api/schema-api/data-types/varchar) 我读到:

Make sure you are aware of the effects of a multi-byte character set. VARCHAR(255) stores 255 characters, which may be more than 255 bytes.

所以我很好奇 255 个字符的最大可能大小是多少?

根据RFC 2279,最高可能的字符(代码点 0x7FFF FFFF)可以用 6 个字节表示。你在 PostgreSQL 中可以表示的最高可能代码点是 0x10FFFF,它占用 4 个字节:

SELECT E'\U0010FFFF';

 ?column? 
══════════
 
(1 row)

SELECT E'\U00110000';
ERROR:  invalid Unicode escape value at or near "\U00110000"
LINE 1: SELECT E'\U00110000';
                 ^

SELECT CAST(E'\U0010FFFF' AS bytea);

   bytea    
════════════
 \xf48fbfbf
(1 row)

因此,如果您假设每个字符的上限为 4 个字节,那么您是安全的。