The thread has called mysql_lock_tables() and the thread state has not been updated since. This is a very general state that can occur for many reasons. For example, the thread is going to request or is waiting for an internal or external system lock for the table. This can occur when InnoDB waits for a
table-level lock during execution of LOCK TABLES. If this state is being caused by requests for external locks and you are not using multiple mysqld servers
that are accessing the same MyISAM tables, you can disable external system locks with the --skip-external-locking option. However, external locking is
disabled by default, so it is likely that this option will have no effect. For SHOW PROFILE, this state means the thread is requesting the lock (not waiting
for it).
System lock
這個線程是被mysql_lock_tables()調用的。這種狀態可能是很多種原因造成的。
例如,一個線程想請求或者正在等一個表的內部或者外部的system lock;
也可能是InnoDB在執行lock tables的時候,等表級鎖;
也可能是請求內部鎖,比如訪問相同MyISM表沒有用多個mysqld服務;
遇到這種情況,可以用--skip-external-locking選項,禁用內部的system locks。然而,內部鎖如果默認禁用的話,那個選項就會沒用了。
如果是在show profile的時候遇到這種狀態,就說明這個線程正在請求鎖(不是等)。
來源:https://dev.mysql.com/doc/refman/5.7/en/general-thread-states.html