我有一个巨大的数据库表 (38 GB),其中有许多列的所有值为 null。问题是,在创建表之前,您不知道哪些列将包含数据,因此我们必须在创建表时保留所有列。但是由于查询的这种性能非常糟糕。
因此需要找到所有其值为空的列以减少表的大小。此外,当内部连接完成时,它会花费太多时间。那么是不是大表的内连接需要更多的时间。
最佳答案
做一个
SELECT Count(distinct colName) FROM myTable
对于每一列。这样,如果没有其他值,您将只获得结果。然后你可以
ALTER TABLE myTable DROP COLUMN colName
放下col.
一个替代方案可能是你做一个
SELECT * FROM myTable procedure Analyse()
通过这种方式,您将获得表格的概览,其中所有列都包含两个有趣的列:Empties_or_zeros
和 Nulls
。两者都包含空行的计数。
关于mysql - 如何删除 mysql 中表的列,其中该列的所有值为空。我有 38GB 的表,因此需要性能。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26418299/