Временные таблицы в MySQL

Узнайте, как использовать временные таблицы в MySQL для оптимизации запросов и обработки данных. Какие преимущества предоставляют временные таблицы в MySQL? Какие практические примеры использования временных таблиц в MySQL можно привести?

Временные таблицы в MySQLПрактический материал CMS.BY
Размер текста

Введение

Временные таблицы больше всего используются для хранения временной, либо другими словами промежуточных данных при сложных выборках из базы данных. К примеру, при большом количестве JOIN и UNION запросов.

Созданные таблицы доступны до закрытия соединения, другими словами до завершения скриптовой части PHP или отключения MySQL клиента.

Создание временной таблицы

Пример создания пустой таблицы

CREATE TEMPORARY TABLE `tmp_table` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`price` decimal(11,2) unsigned NOT NULL DEFAULT '0.00',
`sef` varchar(255) NOT NULL,
`text` text NOT NULL,
`approve` tinyint(1) NOT NULL DEFAULT '1',
`date_add` int(11) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE = MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1

Пример создания временной таблицы из структуры другой таблицы

CREATE TEMPORARY TABLE `tmp_table` LIKE `prods`

Пример клонирование таблицы

 CREATE TEMPORARY TABLE `tmp_table`
S ELECT *
FROM `prods`

Пример клонирование таблицы

CREATE TEMPORARY TABLE `tmp_table`
S ELECT *
FROM `prods`

Пример создания и наполнения из нескольких таблиц

CREATE TEMPORARY TABLE `tmp_table`
S ELECT `prods`.`name`, `urls`.`sef`
FROM `prods`
LEFT JOIN `urls`
ON `prods`.`id` = `urls`.`prods_id`
WHERE `prods`.`approve` = 1

Работа с временными таблицами

После создания таблицы, операции с ней, проводятся как с обычными таблицами, далее предоставлен пример

-- Добавление
INSERT INTO `tmp_table` SET `name` = 'Запись 1', `approve` = 1, `date_add` = UNIX_TIMESTAMP();

-- Изменение
UPDATE `tmp_table` SET `approve` = 0 WHERE `id` = 1;

-- Удаление
DELETE FROM `tmp_table` WHERE `approve` = 0;

-- Выборка
SELECT * FROM `tmp_table` WHERE `approve` = 1;
Практическая помощь

Практическая помощь по теме статьи

Если инструмент или статья подсветили проблему, можно перейти от диагностики к аккуратному внедрению решения.

Материал помог решить задачу?

Оценка помогает нам делать базу знаний точнее.

Редакция CMS.BY

Редакция CMS.BY

С нами Мир познавать проще и надёжнее

Обсудим по существу

Есть задача по сайту или Битрикс24?

От разработки нового проекта до исправления ошибок, обновления, интеграции или технической поддержки.

15 лет опыта Работа с существующим кодом Понятный план действий