Ответ
Для хранения текста в PostgreSQL есть несколько типов данных:
- VARCHAR(n) - строка переменной длины до n символов. Если строка короче, занимает только нужное место.
CREATE TABLE users (
name VARCHAR(100)
);
-
TEXT - строка неограниченной длины. Оптимальный выбор для больших текстов.
-
CHAR(n) - строка фиксированной длины, дополняется пробелами. Используется редко.
Основные рекомендации:
- Для обычных строк используйте TEXT или VARCHAR
- Если нужны ограничения по длине (например, username) - VARCHAR
- Для очень больших текстов (статьи, документы) - TEXT
- CHAR практически не используется в современных приложениях
Пример с Go:
_, err := db.Exec("INSERT INTO articles (title, content) VALUES ($1, $2)",
"PostgreSQL Types",
"This is a long article about PostgreSQL text storage...")
PostgreSQL автоматически оптимизирует хранение TEXT/VARCHAR, разницы в производительности между ними практически нет.