2

我正在尝试查找没有指定列名的表:

select t.table_name
from information_schema.tables as t
  left join information_schema.columns as c
    on t.table_name=c.table_name
      and c.column_name='some_name'
where c.column_name is null

这是非常非常缓慢的。有什么办法可以改善吗?

4

2 回答 2

2

如果您使用 InnoDB 表,请将全局变量:innodb_stats_on_metadata 设置为 0。默认情况下,InnoDB 引擎将在访问其表的模式信息时更新统计信息。

于 2013-05-23T20:46:31.317 回答
1

您可以尝试使用 EXISTS:

SELECT t.table_name
FROM information_schema.table as t
WHERE NOT EXISTS (SELECT 1 FROM information_schema.columns c 
                  WHERE c.table_name = t.table_name)
于 2013-05-23T20:45:32.503 回答