文章预览
Percona 资深工程师 Marco Tusa 近日爆料称,升级到 MySQL 8.0.38 版本后,当实例中的表个数超过一万个,实例重启后会发生 Crash 而失败,即便是重启时加上 validate_tablespace_paths=OFF 也不 行。 这个问题在 >= 8.0.38 版本中存在,包括 8.4.1 和 9.0.0 。 详细复现过程参见: https://perconadev.atlassian.net/browse/PS-9306 。 用 MySQL 9.0.0 版本测试: -- 创建一个最简单的表,并写入数据 > CREATE DATABASE test ; > USE test ; > CREATE TABLE t_1 ( `id` int NOT NULL , PRIMARY KEY ( `id` ) ); > INSERT INTO t_1 SELECT 1 ; 然后反复创建类似上面的表,表个数达到 1 万。 > SELECT COUNT(*) FROM information_schema.tables WHERE TABLE_SCHEMA = 'test' ; +----------+ | count(*) | +----------+ | 10000 | +----------+ 之后重启实例,就能看到日志里有类似下面的内容,启动失败: [Note] [MY-012207] [InnoDB]
………………………………