14.16.7 Таблица информации о временных таблицах InnoDB INFORMATION_SCHEMA
INNODB_TEMP_TABLE_INFO предоставляет информацию о созданных пользователем временных таблицах, которые активны в InnoDB экземпляре. Она не содержит информации о внутренних InnoDB временных таблицах, используемых оптимизатором.
mysql> SHOW TABLES FROM INFORMATION_SCHEMA LIKE 'INNODB_TEMP%';
+---------------------------------------------+
| Tables_in_INFORMATION_SCHEMA (INNODB_TEMP%) |
+---------------------------------------------+
| INNODB_TEMP_TABLE_INFO |
+---------------------------------------------+
Для определения таблицы, см. Раздел 24.4.27, «Таблица INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO».
Пример 14.12 INNODB_TEMP_TABLE_INFO
Этот пример демонстрирует характеристики таблицы INNODB_TEMP_TABLE_INFO.
-
Создайте простую
InnoDBвременную таблицу:mysql>
CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB; -
Запросите
INNODB_TEMP_TABLE_INFOдля просмотра метаданных временной таблицы.mysql>
SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G*************************** 1. row *************************** TABLE_ID: 194 NAME: #sql7a79_1_0 N_COLS: 4 SPACE: 182 PER_TABLE_TABLESPACE: FALSE IS_COMPRESSED: FALSETABLE_ID— уникальный идентификатор временной таблицы. СтолбецNAMEотображает сгенерированное системой имя временной таблицы, которое начинается с “#sql”. Количество столбцов (N_COLS) равно 4, а не 1, потому чтоInnoDBвсегда создаёт три скрытых столбца таблицы (DB_ROW_ID,DB_TRX_IDиDB_ROLL_PTR).PER_TABLE_TABLESPACEиIS_COMPRESSEDсообщаютTRUEдля сжатых временных таблиц. В противном случае эти поля сообщаютFALSE. -
Создайте сжатую временную таблицу.
mysql>
CREATE TEMPORARY TABLE t2 (c1 INT) ROW_FORMAT=COMPRESSED ENGINE=INNODB; -
Снова запросите
INNODB_TEMP_TABLE_INFO.mysql>
SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G*************************** 1. row *************************** TABLE_ID: 195 NAME: #sql7a79_1_1 N_COLS: 4 SPACE: 183 PER_TABLE_TABLESPACE: TRUE IS_COMPRESSED: TRUE *************************** 2. row *************************** TABLE_ID: 194 NAME: #sql7a79_1_0 N_COLS: 4 SPACE: 182 PER_TABLE_TABLESPACE: FALSE IS_COMPRESSED: FALSEPER_TABLE_TABLESPACEиIS_COMPRESSEDсообщаютTRUEдля сжатой временной таблицы. ИдентификаторSPACEдля сжатой временной таблицы отличается, так как сжатые временные таблицы создаются в отдельных файловых таблицах. Несжатые временные таблицы создаются в общем временном пространстве таблиц (ibtmp1) и сообщают тот же идентификаторSPACE. -
Перезапустите MySQL и запросите
INNODB_TEMP_TABLE_INFO.mysql>
SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\GEmpty set (0.00 sec)Возвращается пустой набор, потому что
INNODB_TEMP_TABLE_INFOи её данные не сохраняются на диск при завершении работы сервера. -
Создайте новую временную таблицу.
mysql>
CREATE TEMPORARY TABLE t1 (c1 INT PRIMARY KEY) ENGINE=INNODB; -
Запросите
INNODB_TEMP_TABLE_INFOдля просмотра метаданных временной таблицы.mysql>
SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO\G*************************** 1. row *************************** TABLE_ID: 196 NAME: #sql7b0e_1_0 N_COLS: 4 SPACE: 184 PER_TABLE_TABLESPACE: FALSE IS_COMPRESSED: FALSEИдентификатор
SPACEможет отличаться, поскольку он динамически генерируется при запуске сервера.
© 2025 Oracle
Licensed under the GPLv2 License.