Текстові (рядкові) типи даних

Ці типи використовуються для зберігання текстової інформації.
CHARфіксована довжина рядка (до 255 символів).
VARCHARзмінна довжина рядка (до 65,535 символів).
TEXTтекстові дані (до 65,535 символів).
TINYTEXTмалий текст (до 255 символів).
MEDIUMTEXTсередній текст (до 16,777,215 символів).
LONGTEXTдуже великий текст (до 4,294,967,295 символів).

CHAR

У MySQL тип даних CHAR використовується для зберігання рядків фіксованої довжини.
Фіксована довжинапри оголошенні потрібно вказати довжину, наприклад, CHAR(10). Якщо рядок коротший за вказану довжину, він доповнюється пробілами до визначеної довжини.
Довжинаможе бути від 1 до 255 символів (CHAR(N), де N – довжина).
Продуктивністьможе бути швидшим за VARCHAR, особливо при роботі з рядками однакової довжини.
Автоматичне видалення пробілівMySQL автоматично обрізає пробіли при вибірці (SELECT).

Приклад створення таблиці і введення даних з використання цього:

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username CHAR(10) NOT NULL
);
INSERT INTO users (username) VALUES ('Jenny');

Коли використовувати CHAR?

  • Якщо всі значення мають однакову або майже однакову довжину (наприклад, коди країн, поштові індекси).
  • Якщо потрібен швидкий пошук (наприклад, індексовані поля, які не змінюються часто).

Якщо ж рядки мають змінну довжину, краще використовувати VARCHAR.

VARCHAR

VARCHAR використовується для зберігання рядків змінної довжини. На відміну від CHAR, він не доповнює рядки пробілами до фіксованої довжини, що робить його більш ефективним для текстових даних змінної довжини.
Змінна довжинаVARCHAR використовує рівно стільки місця, скільки потрібно для даних, плюс 1 або 2 байти для зберігання довжини рядка.
Діапазон довжиниможе містити від 1 до 65,535 символів (залежно від загального розміру рядка та кодування).
Оптимізація просторуна відміну від CHAR, не доповнює рядки пробілами, тому економить місце.
Швидкість доступуможе бути трохи повільнішим за CHAR, особливо якщо рядки часто змінюють довжину.

Приклад створення таблиці і введення даних з використання цього типу:

CREATE TABLE users_varchar (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    city VARCHAR(50)
);
INSERT INTO users (username, email, city) 
VALUES 
('Alice', 'alice@example.com', 'Kyiv'),
('Willie', 'willie@example.com', 'Lviv'),
('Jenny', 'jenny@example.com', ‘Kharkiv’);

Коли використовувати VARCHAR?

  • Коли довжина рядків сильно змінюється (наприклад, імена користувачів, електронні адреси).
  • Коли потрібно економити місце в базі даних.
  • Якщо значення будуть часто оновлюватися.

Але якщо всі значення однакової довжини (наприклад, коди країн: UA, US, FR), краще використовувати CHAR.

Ще трохи про VARCHAR та CHAR

Як MySQL зберігає VARCHAR?

  • Якщо рядок ≤ 255 символів → використовується 1 байт для зберігання довжини.
  • Якщо рядок > 255 символів → використовується 2 байти для зберігання довжини.
ПараметрCHAR(N)VARCHAR(N)
ДовжинаФіксованаЗмінна
Додатковий простірДоповнюється пробіламиЗаймає рівно стільки місця, скільки потрібно + 1-2 байти на зберігання довжини
ПродуктивністьШвидше для однакових розмірівЕфективніше для коротших рядків

Типи TEXT у MySQL

У MySQL існує чотири типи TEXT, що відрізняються максимальною довжиною.

ТипМакс. розмірВикористання
TINYTEXT255 байтів (~255 символів)Короткі нотатки, теги, заголовки
TEXT65,535 байтів (~65,535 символів)Опис товару, статті, коментарі
MEDIUMTEXT16,777,215 байтів (~16 млн символів)Великі документи, книги
LONGTEXT4,294,967,295 байтів (~4 ГБ тексту)Дуже великі тексти (енциклопедії, архіви)

TINYTEXT

TINYTEXT – це один із текстових типів, призначений для зберігання коротких текстових значень.
Максимальна довжинадо 255 байтів (~255 символів у кодуванні ASCII, менше в UTF-8).
Змінна довжиназберігає рівно стільки символів, скільки потрібно.
Економить місцевикористовується для дуже коротких текстів.
Не підтримує значення за замовчуваннямне можна встановити DEFAULT.
Не можна повністю індексуватиіндексуються тільки перші N символів.

Приклад створення таблиці і введення даних з використання цього типу:

CREATE TABLE messages (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    short_message TINYTEXT NOT NULL
);
INSERT INTO messages (username, short_message) 
VALUES 
('Alice', 'Hello, khuylo is dead!'),
('Willie', 'Great news. Thank you!');

Коли використовувати TINYTEXT?

  • Якщо потрібно зберігати короткі текстові фрагменти (наприклад, теги, заголовки, нотатки).
  • Якщо розмір тексту змінний, але не перевищує 255 символів.

Якщо потрібно ефективно індексувати дані, краще використовувати VARCHAR.

TEXT

TEXT використовується для зберігання великих текстових блоків. Це гарний вибір для збереження описів, коментарів або будь-яких довгих текстових значень.
Максимальна довжина65,535 байтів (~65,535 символів)
Змінна довжиназберігає рівно стільки символів, скільки потрібно.
ІндексаціяНе можна індексувати повністю – індекси працюють тільки з початковою частиною рядка (наприклад, перші 255 символів).
Значення за замовчуваннямНе підтримує значення за замовчуванням – на відміну від VARCHAR.

Приклад створення таблиці і введення даних з використання цього типу:

CREATE TABLE articles (
    id INT PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    short_description TINYTEXT
);
INSERT INTO articles (title, content, short_description) 
VALUES 
('MySQL Guide', 'This is a long text about MySQL...', 'A short MySQL tutorial');

Коли використовувати TEXT?

  • Коли потрібно зберігати великі обсяги тексту (наприклад, статті, коментарі, логи).
  • Коли не потрібно використовувати частий пошук за індексами.

Якщо значення не дуже довгі, краще використовувати VARCHAR, оскільки він швидший і підтримує індекси.

MEDIUMTEXT

MEDIUMTEXT – це один із текстових типів, призначений для зберігання дуже великих текстових даних.
Максимальна довжина16,777,215 байтів (~16 мільйонів символів у кодуванні ASCII, менше в UTF-8).
Змінна довжиназберігає рівно стільки символів, скільки потрібно.
Зберігання довжини рядкаВикористовує 3 байти для зберігання довжини рядка.
Індексаціяобмежена – можна індексувати тільки перші N символів.
Значення за замовчуваннямНе підтримує значення за замовчуванням – на відміну від VARCHAR.

Приклад створення таблиці і введення даних з використання цього типу:

CREATE TABLE articles_medium (
    id INT PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    content MEDIUMTEXT NOT NULL
);
INSERT INTO articles (title, content) 
VALUES 
('MySQL Introduction', 'This is a very long article about MySQL ...'),
('Big Data Analysis', 'This article explores big data techniques...');

LONGTEXT

LONGTEXT – це найбільший із підтипів TEXT, який використовується для зберігання гігантських текстових даних.
Максимальна довжинаМаксимальна довжина – 4,294,967,295 байтів (~4 ГБ, до 4 мільярдів символів).
Змінна довжиназберігає рівно стільки символів, скільки потрібно.
Зберігання довжини рядкаВикористовує 4 байти для зберігання довжини рядка.
Індексаціяобмежена – можна індексувати тільки перші N символів.
Значення за замовчуваннямНе підтримує значення за замовчуванням – на відміну від VARCHAR.

Приклад створення таблиці і введення даних з використання цього типу:

CREATE TABLE books (
    id INT PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    full_text LONGTEXT NOT NULL
);
INSERT INTO books (title, full_text) 
VALUES 
('MySQL Handbook', 'This is the full text of the book...'),
('Big Data Handbook', 'This book contains a detailed guide on big data...');

Порівняння типів TEXT

ПараметрTINYTEXTTEXTMEDIUMTEXTLONGTEXT
Макс. довжинадо 255 байтів (~255 символів)65,535 символів (~64 КБ)16,777,215 символів (~16 МБ)4,294,967,295 символів (~4 ГБ)
Використання байтів для довжини1 байт2 байти3 байти4 байти
Типові випадки використанняТеги, заголовки, нотаткиОпис товару, коментаріСтатті, книги, великі JSON-даніАрхіви, енциклопедії, лог-файли

Для кращої візуалізації є відео:

В цьому відео поговоримо про:
00:00 Текстові типи
00:31 CHAR
03:48 VARCHAR
08:28 Типи TEXT у MySQL
09:06 TINYTEXT
12:08 TEXT
15:29 MEDIUMTEXT
17:44 LONGTEXT
19:37 Підсумки за типами TEXT

Шевченківські дні

Shevchenko
“Тілько ворог, що сміється... 
Смійся, лютий враже!
Та не дуже, бо все гине,—
Слава не поляже;
Не поляже, а розкаже,
Що діялось в світі,
Чия правда, чия кривда
І чиї ми діти.
Наша дума, наша пісня
Не вмре, не загине...
От де, люде, наша слава,
Слава України!
Без золота, без каменю,
Без хитрої мови,
А голосна та правдива,
Як господа слово.”

Тарас Григорович Шевченко

Інсульт: як запобігти?

Зовсім нетиповий та нетематичний пост. Хоча це платформа для навчання та саморозвитку, тому питання здоров’я теж можна сюди віднести, на мою думку. Але я не лікар, а звичайний пацієнт.

Поки лікувався в неврології, бачив хлопчину 26 років, переніс інсульт, частково паралізований. Зовсім молодий і вже інсульт. Переніс значну кількість контузій (більше 10). І ось маємо – інсульт у 26 років. Про що це говорить? Про виснаження організму людини, її резервних можливостей.

Звісно професійні медики, науковці імовірно скажуть, що робити такі твердження без відповідних наукових досліджень не можна. Але, як було сказано, я не лікар, я пацієнт і це моє припущення.

Чув не раз, що в зоні бойових дій місяць йде за два. З власного досвіду скажу (хоча воїн з мене вийшов, м’яко кажучи, посередній) наступне: день на нулі – це рік життя, а можей й більше чи навіть ціле життя, на превеликий жаль.

Тому спробуємо поговорити про інсульти і про те, що можна зробити, щоб їм запобігти.

Що таке інсульт?

Інсульт — це серйозне порушення кровообігу в головному мозку. Це трапляється, коли кров не може нормально потрапити до частини мозку через заблоковану або пошкоджену судину. Через це мозок не отримує кисень і поживні речовини, і частина мозкових клітин починає гинути.

Інсульт може призвести до різних проблем, наприклад, труднощів з рухом, мовленням або пам’яттю, в залежності від того, яка частина мозку постраждала.

Є два основних типи інсульту:

  • Ішемічний — коли судина перекривається згустком крові.
  • Геморагічний — коли судина розривається і кров виливається в мозок.

Інсульт потребує термінового медичного втручання, оскільки чим швидше почати лікування, тим менше шкоди буде для мозку.

Звісно, це дуже спрощено, тому прошу лікарів не судити суворо.

Як запобігти інсульту?

Запобігти інсульту можна, якщо дотримуватись здорового способу життя та контролювати фактори ризику. Ось кілька важливих порад, які можуть знизити ризик інсульту:

ПорадаОпис
Контролюйте артеріальний тисквисокий тиск є основним фактором ризику інсульту. Регулярно вимірюйте тиск і за потреби звертайтесь до лікаря для корекції.
Правильне харчуваннязбалансоване харчування з малою кількістю насичених жирів, солі та цукру допомагає підтримувати здоров’я серцево-судинної системи. Вживайте більше овочів, фруктів, цільнозернових продуктів і здорових жирів (наприклад, оливкової олії).
Фізична активністьРегулярні фізичні навантаження, такі як ходьба, біг чи плавання, допомагають покращити кровообіг, знизити артеріальний тиск і підтримувати нормальну вагу.
Контролюйте рівень холестеринуВисокий рівень холестерину може спричиняти утворення бляшок у судинах, що збільшує ризик інсульту. Здоровий спосіб життя та, у разі потреби, лікарські препарати допомагають контролювати рівень холестерину.
Відмова від куріння та обмеження алкоголюКуріння та надмірне вживання алкоголю сприяють пошкодженню судин і збільшують ризик інсульту. Краще припинити курити та обмежити споживання алкоголю.
Зниження стресуХронічний стрес може впливати на кров’яний тиск і серцево-судинне здоров’я, тому важливо знаходити способи розслаблення, наприклад, через медитацію, йогу або інші релаксаційні практики.
Контролюйте рівень цукру в кровіДіабет підвищує ризик інсульту, тому важливо контролювати рівень цукру в крові через правильне харчування та фізичну активність.
Регулярні медичні оглядиЯкщо у вас є проблеми зі здоров’ям, такі як високий тиск чи цукровий діабет, регулярні візити до лікаря допоможуть вчасно виявити проблеми і вжити заходів для їх корекції.

Дотримуючись цих простих рекомендацій, можна значно знизити ризик інсульту.

P.S. Перепрошую за тривалу відсутність. На жаль, є фізичні обмеження до яких все ще не можу звикнути. І процес лікування цього разу був трохи тривалішим. Сьогодні намагався записати відео, але не вийшло.

За можливості підтримуйте ЗСУ, бо там пекло, там надзвичайно важко і фізично, і психологічно.

Фонд “Повернись живим (допомагав бригаді, у якій я служив).

ГО “Справа Громад” (теж допомагала бригаді, у якій я служив).

Слава Україні!