skip-external-locking 是 MySQL 的一个配置选项,用于控制是否使用外部锁定机制。默认情况下,MySQL 使用外部锁定机制,但在某些情况下,可能会带来性能问题。
底层原理是,在 MySQL 5.7 版本及以前,使用外部锁定机制意味着 MySQL 将通过调用外部锁定程序(例如,Linux 上的系统锁定程序)来锁定表。这需要 MySQL 进程将锁定请求发送到操作系统内核,这可能会导致锁定延迟,从而影响性能。而在 MySQL 8.0 版本以后,MySQL 支持使用内部锁定机制,不再需要使用外部锁定程序,可以通过启用 skip-external-locking 来关闭外部锁定机制。
需要注意的是,在启用 skip-external-locking 的情况下,如果 MySQL 进程无法获得所需的表锁定,则可能会导致错误,因此应该谨慎使用。