如何删除mysql中表的列,其中该列的所有值都为null。我有38GB的表,所以性能是必需的。

时间:2014-10-17 05:14:41

标签: mysql

我有一个巨大的数据库表(38 GB),其中有许多列的所有值都为null。问题是,在创建表之前,您不知道哪些列将包含数据,因此我们必须在创建表时保留所有列。但由于这种查询性能非常糟糕。

因此需要查找所有值为null的列减小表的大小。此外,当内部连接完成时,需要花费太多时间。因此,大型表上的内部联接需要更多时间。

1 个答案:

答案 0 :(得分:0)

做一个

SELECT Count(distinct colName) FROM myTable

对于eacht列。这样,如果没有其他值,您将获得als结果。那么你可以

ALTER TABLE myTable DROP COLUMN colName

放弃col。

替代可能就是你做了

SELECT * FROM myTable procedure Analyse()

通过这种方式,您可以获得关于表格的概览,所有列都包含两个有趣的列:Empties_or_zerosNulls。两者都包含空行数。