通货紧缩产生的原因之一是经济结构不合理,存在过多的无效供给。当经济中存在不合理的扩张和投资,造成不合理的供给结构和过多的无效供给,积累到一定程度时,会加剧供求矛盾,导致供过于求,产品价格下跌。因此,选项B是正确答案。而货币供给过多、外资流入增加、有效需求过大都不是通货紧缩产生的原因之一。