17.15.2.3 Сохранение и согласованность данных о транзакциях и блокировках InnoDB
Данные, предоставляемые таблицами транзакций и блокировок (INFORMATION_SCHEMA INNODB_TRX таблица, Performance Schema data_locks и data_lock_waits таблицы) представляют собой моментальное изображение быстро меняющихся данных. Это отличается от пользовательских таблиц, где данные изменяются только при выполнении обновлений, инициированных приложением. Базовые данные — это управляемые системой внутренние данные, которые могут изменяться очень быстро:
-
Данные могут быть не согласованными между таблицами
INNODB_TRX,data_locksиdata_lock_waits.Таблицы
data_locksиdata_lock_waitsпредоставляют текущие данные изInnoDBдвижка хранения, чтобы предоставить информацию о блокировках транзакций в таблицеINNODB_TRX. Данные, извлеченные из таблиц блокировок, существуют в момент выполнения запросаSELECT, но могут быть удалены или изменены к моменту получения результата запроса клиентом.Соединение таблиц
data_locksиdata_lock_waitsможет показать строки в таблицеdata_lock_waits, которые идентифицируют родительскую строку в таблицеdata_locks, которая уже может быть удалена или еще не существует. -
Данные в таблицах транзакций и блокировок могут не соответствовать данным в таблице
INFORMATION_SCHEMAPROCESSLISTили таблице Performance Schemathreads.Например, следует быть осторожными при сравнении данных в таблицах
InnoDBтранзакций и блокировок с данными в таблицеPROCESSLIST. Даже если вы выполняете одинSELECT(например, соединяяINNODB_TRXиPROCESSLIST), содержание этих таблиц, как правило, не согласовано. Возможны случаи, когдаINNODB_TRXссылается на строки, отсутствующие вPROCESSLIST, или когда текущий выполняемый SQL-запрос транзакции, показанный вINNODB_TRX.TRX_QUERY, отличается от запроса вPROCESSLIST.INFO.
© 2025 Oracle
Licensed under the GPLv2 License.