17.15.2.3 Сохранение и согласованность информации о транзакциях и блокировках InnoDB
Данные, предоставляемые таблицами транзакций и блокировок (INFORMATION_SCHEMA INNODB_TRX table, 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.