BIG_DATA_SYSTEMS_ANALYSIS Telegram 35
CHAR и VARCHAR — что будем использовать? Или всё-таки TEXT?

У каждой СУБД есть особенности, связанные с используемыми типами данных, но что касается хранения текстовой информации чаще стандартом являются 'char', 'varchar' и 'text'. В чём же разница и как понять, что выбрать?

1. CHAR(n) — хранит текстовые данные фиксированной длины. Что это значит? Под данные всегда бронируется указанное число символов и если добавить в столбец name типа char(5) текст 'Olga', то физически запишется 'Olga '. Недостающие символы дополнятся пробелами. Нужно понимать, что несмотря на то, что вы внесли в такой столбец текст длиной 4 символа, вывод LENGTH(name) по этому значению выведет длину строки 5.

Поэтому хранить данные переменной длины в типе char крайне неэффективно. Столбец типа CHAR всегда будет занимать одинаковое, прогнозируемое пространство диска.

Кроме этого возможны проблемы:
— при конкатенации строк, т.к. данные дополняются пробелами.
— с поиском пробелов в строках.

Если всё-таки используете тип char, в запросах рекомендуется использовать функцию RTRIM, которая усекает пробелы в конце строки.

2. VARCHAR(n) — для хранения строк переменной длины. n — указывает на максимальное хранимое количество символов, но не ограничивает в хранении строк меньшей длины.

Производительность типа varchar незначительно ниже, чем у char, так как для вычислений необходимо использовать информацию о длине строки. А, например, тот же Oracle в своём типе VARCHAR2 хранит не только строку, но и информацию о её длине. Нужно помнить, что зато данные в столбцах типа varchar, если они переменной длины, занимают меньше дискового пространства.

3. TEXT — хранит данные любой длины без ограничений. Это не значит, что нужно складывать в этот тип весь текст всех страниц Wikipedia, для очень больших текстовых данных существуют специально оптимизированные типы.

Отдельно стоит отметить особенности использования varchar без указания максимальной длины и text. Они будут отличаться для различных СУБД и стоит изучить их отдельно.

Дополнительно можно почитать хорошую статью по строковым типам на sql-ex.

#sql



tgoop.com/big_data_systems_analysis/35
Create:
Last Update:

CHAR и VARCHAR — что будем использовать? Или всё-таки TEXT?

У каждой СУБД есть особенности, связанные с используемыми типами данных, но что касается хранения текстовой информации чаще стандартом являются 'char', 'varchar' и 'text'. В чём же разница и как понять, что выбрать?

1. CHAR(n) — хранит текстовые данные фиксированной длины. Что это значит? Под данные всегда бронируется указанное число символов и если добавить в столбец name типа char(5) текст 'Olga', то физически запишется 'Olga '. Недостающие символы дополнятся пробелами. Нужно понимать, что несмотря на то, что вы внесли в такой столбец текст длиной 4 символа, вывод LENGTH(name) по этому значению выведет длину строки 5.

Поэтому хранить данные переменной длины в типе char крайне неэффективно. Столбец типа CHAR всегда будет занимать одинаковое, прогнозируемое пространство диска.

Кроме этого возможны проблемы:
— при конкатенации строк, т.к. данные дополняются пробелами.
— с поиском пробелов в строках.

Если всё-таки используете тип char, в запросах рекомендуется использовать функцию RTRIM, которая усекает пробелы в конце строки.

2. VARCHAR(n) — для хранения строк переменной длины. n — указывает на максимальное хранимое количество символов, но не ограничивает в хранении строк меньшей длины.

Производительность типа varchar незначительно ниже, чем у char, так как для вычислений необходимо использовать информацию о длине строки. А, например, тот же Oracle в своём типе VARCHAR2 хранит не только строку, но и информацию о её длине. Нужно помнить, что зато данные в столбцах типа varchar, если они переменной длины, занимают меньше дискового пространства.

3. TEXT — хранит данные любой длины без ограничений. Это не значит, что нужно складывать в этот тип весь текст всех страниц Wikipedia, для очень больших текстовых данных существуют специально оптимизированные типы.

Отдельно стоит отметить особенности использования varchar без указания максимальной длины и text. Они будут отличаться для различных СУБД и стоит изучить их отдельно.

Дополнительно можно почитать хорошую статью по строковым типам на sql-ex.

#sql

BY В мире больших данных


Share with your friend now:
tgoop.com/big_data_systems_analysis/35

View MORE
Open in Telegram


Telegram News

Date: |

Other crimes that the SUCK Channel incited under Ng’s watch included using corrosive chemicals to make explosives and causing grievous bodily harm with intent. The court also found Ng responsible for calling on people to assist protesters who clashed violently with police at several universities in November 2019. The channel also called on people to turn out for illegal assemblies and listed the things that participants should bring along with them, showing prior planning was in the works for riots. The messages also incited people to hurl toxic gas bombs at police and MTR stations, he added. How to create a business channel on Telegram? (Tutorial) Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.” For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data.
from us


Telegram В мире больших данных
FROM American