我正在尝试查找没有指定列名的表:
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
这非常非常慢。有没有办法改善它?
答案 0 :(得分:2)
如果您使用的是InnoDB表,请将全局变量:innodb_stats_on_metadata设置为0.默认情况下,InnoDB引擎将在访问其表的架构信息时更新统计信息。
答案 1 :(得分: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)