Git не работает на MacOS Catalina: «xcrun: ошибка: неверный путь активного разработчика (/ Library / Developer / CommandLineTools), отсутствует» [дубликат]

По-моему, у varchar(n) есть свои преимущества. Да, все они используют один и тот же базовый тип и все такое. Но следует отметить, что индексы в PostgreSQL имеют ограничение по размеру 2712 байт в строке.

TL; DR: Если вы используете text type без ограничения и имеете индексы в этих столбцах, очень возможно, что вы нажмете этот предел для некоторых ваших столбцов и получить ошибку при попытке вставить данные, но с помощью varchar(n) вы можете ее предотвратить.

Некоторые подробности: проблема в том, что PostgreSQL не дает никаких исключений при создании индексов для text type или varchar(n), где n больше 2712. Однако он будет давать ошибку, когда будет вставлена ​​запись со сжатым размером более 2712. Это означает, что вы можете вставить 100 000 символов строки, которая состоит из повторяющихся символов, потому что она будет сжата намного ниже 2712, но вы не сможете вставить некоторую строку с 4000 символами, потому что сжатый размер больше 2712 байтов. Используя varchar(n), где n не слишком слишком много больше 2712, вы можете избежать этих ошибок.

166
задан 10 October 2019 в 09:25
поделиться