Разница между VARCHAR и TEXT в MySQL

MySQL имеет много типов данных для хранения строковых данных в таблице. VARCHAR и TEXT — два из них. Оба могут хранить максимум 65535 символов, но между этими типами данных, описанными в этом руководстве, есть некоторые различия.
MySQL имеет много типов данных для хранения строковых данных в таблице. VARCHAR и TEXT — два из них. Оба могут хранить максимум 65535 символов, но между этими типами данных, описанными в этом руководстве, есть некоторые различия.
Выполните следующую инструкцию CREATE DATABASE, чтобы создать базу данных с именем test_db.
Запустите следующую инструкцию запроса, чтобы выбрать базу данных test_db перед созданием таблицы.
Выполните следующую инструкцию CREATE TABLE, чтобы создать таблицу клиентов, содержащую пять полей. Здесь тип данных поля id — целое число, а тип данных полей name, email, address и contact_no — varchar, содержащий значение длины.
Выполните следующую инструкцию DESCRIBE, чтобы проверить структуру таблицы клиентов.
Выполните следующий запрос INSERT, чтобы вставить три записи в таблицу клиентов.
Запустите следующую инструкцию SELECT, чтобы прочитать все записи таблицы клиентов.
Запустите следующую инструкцию CREATE TABLE, чтобы создать таблицу сотрудников, содержащую пять полей. Тип данных поля id — целое число. Тип данных полей name, email и contact_no — varchar. Тип данных адресного поля — текст. Здесь для поля адреса не объявлено значение длины из-за текстового типа данных.
Выполните следующую инструкцию DESCRIBE, чтобы проверить структуру таблицы сотрудников.
Выполните следующий запрос INSERT, чтобы вставить три записи с одинаковым содержимым таблицы клиентов в таблицу сотрудников.
Выполните следующую инструкцию SELECT, чтобы прочитать все записи таблицы сотрудников.
База данных была выбрана здесь во время создания таблицы. Таким образом, нам не нужно выбирать его снова. Выполните следующую инструкцию SET, чтобы включить профилирование SESSION.
Выполните следующий запрос SELECT, чтобы прочитать все записи таблицы клиентов.
Выполните следующий запрос SELECT, чтобы прочитать все записи таблицы сотрудников.
Выполните следующую команду, чтобы проверить производительность двух предыдущих запросов SELECT.
Следующий вывод появится после выполнения команды SHOW PROFILES. Согласно выходным данным, запрос SELECT для таблицы клиентов содержит поле адреса типа данных VARCHAR, требуемое 0,00101000 секунд, а запрос SELECT для таблицы сотрудников, содержащей поле адреса типа данных TEXT, требует 0,00078125 секунд. Это доказывает, что тип данных TEXT работает быстрее, чем тип данных VARCHAR для тех же данных.
Вы можете сравнить выходные данные следующих двух запросов, чтобы подробно проверить производительность типов данных VARCHAR и TEXT.

MySQL имеет много типов данных для хранения строковых данных в таблице. VARCHAR и TEXT — два из них. Оба могут хранить максимум 65535 символов, но между этими типами данных, описанными в этом руководстве, есть некоторые различия.
MySQL имеет много типов данных для хранения строковых данных в таблице. VARCHAR и TEXT — два из них. Оба могут хранить максимум 65535 символов, но между этими типами данных, описанными в этом руководстве, есть некоторые различия.
VARCHAR против TEXT:
Существует много различий между типами данных VARCHAR и TEXT. Различия между этими типами данных описаны ниже.Особенности VARCHAR и TEXT
Типы данных VARCHAR и TEXT по-разному хранят данные в таблице базы данных. Различные особенности этих типов данных описаны ниже.
Декларация VARCHAR и TEXT
Способы объявления типов данных VARCHAR и TEXT объясняются ниже путем создания двух таблиц с полем типов данных VARCHAR и TEXT. Длина требуется для определения типа данных VARCHAR, а длина не требуется для определения типа данных TEXT.Выполните следующую инструкцию CREATE DATABASE, чтобы создать базу данных с именем test_db.
Код:
CREATE DATABASE test_db;
Запустите следующую инструкцию запроса, чтобы выбрать базу данных test_db перед созданием таблицы.
Код:
USE test_db;
Выполните следующую инструкцию CREATE TABLE, чтобы создать таблицу клиентов, содержащую пять полей. Здесь тип данных поля id — целое число, а тип данных полей name, email, address и contact_no — varchar, содержащий значение длины.
Код:
CREATETABLE customers(
id INTNOT NULL PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(50),
address VARCHAR(300),
contact_no VARCHAR(15));
Выполните следующую инструкцию DESCRIBE, чтобы проверить структуру таблицы клиентов.
Код:
DESCRIBE customers;
Выполните следующий запрос INSERT, чтобы вставить три записи в таблицу клиентов.
Код:
INSERT INTO `customers` (`id`, `name`, `email`, `address`, `contact_no`) VALUES ('01', 'Andrey Ex', '[email protected]', '25, aaaaaaaaaaaaaa, Bangladesh ', '0191275634'),
('02', 'Sasha Destroyer', '[email protected]', 'bbbbbbbbbbbbbbbbbb', '01855342357'),
('03', 'Masha Bubba', '[email protected]', 'cccccccccccccc', NULL);
Запустите следующую инструкцию SELECT, чтобы прочитать все записи таблицы клиентов.
Код:
SELECT * FROM customers;
Запустите следующую инструкцию CREATE TABLE, чтобы создать таблицу сотрудников, содержащую пять полей. Тип данных поля id — целое число. Тип данных полей name, email и contact_no — varchar. Тип данных адресного поля — текст. Здесь для поля адреса не объявлено значение длины из-за текстового типа данных.
Код:
CREATETABLE employees(
id INTNOT NULL PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(50),
address TEXT,
contact_no VARCHAR(15));
Выполните следующую инструкцию DESCRIBE, чтобы проверить структуру таблицы сотрудников.
Код:
DESCRIBE employees;
Выполните следующий запрос INSERT, чтобы вставить три записи с одинаковым содержимым таблицы клиентов в таблицу сотрудников.
Код:
INSERT INTO `employees` (`id`, `name`, `email`, `address`, `contact_no`) VALUES ('01', 'Andrey Ex', '[email protected]', 'aaaaaaaaaaaaaaaaaaaaaaa', '0191275634'),
('02', 'Sasha Destroyer', '[email protected]', 'bbbbbbbbbbbbbbbbbbbbbb', '01855342357'),
('03', 'Masha Bubba', '[email protected]', 'ccccccccccccccccccc', NULL);
Выполните следующую инструкцию SELECT, чтобы прочитать все записи таблицы сотрудников.
Код:
SELECT * FROM employees;
Производительность VARCHAR и TEXT
Ранее уже упоминалось, что тип данных TEXT работает быстрее, чем тип данных VARCHAR. Вы должны выбрать базу данных, содержащую таблицы с полем типа данных VARCHAR и TEXT, и включить профилирование текущего сеанса MySQL, чтобы проверить, какой тип данных быстрее между VARCHAR и TEXT.База данных была выбрана здесь во время создания таблицы. Таким образом, нам не нужно выбирать его снова. Выполните следующую инструкцию SET, чтобы включить профилирование SESSION.
Код:
SET SESSION profiling = 1;
Выполните следующий запрос SELECT, чтобы прочитать все записи таблицы клиентов.
Код:
SELECT * FROM customers;
Выполните следующий запрос SELECT, чтобы прочитать все записи таблицы сотрудников.
Код:
SELECT * FROM employees;
Выполните следующую команду, чтобы проверить производительность двух предыдущих запросов SELECT.
Код:
SHOW PROFILES;
Следующий вывод появится после выполнения команды SHOW PROFILES. Согласно выходным данным, запрос SELECT для таблицы клиентов содержит поле адреса типа данных VARCHAR, требуемое 0,00101000 секунд, а запрос SELECT для таблицы сотрудников, содержащей поле адреса типа данных TEXT, требует 0,00078125 секунд. Это доказывает, что тип данных TEXT работает быстрее, чем тип данных VARCHAR для тех же данных.
Вы можете сравнить выходные данные следующих двух запросов, чтобы подробно проверить производительность типов данных VARCHAR и TEXT.
Код:
SELECT * FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID=1;
SELECT * FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID=2;