我的谷歌搜索能力不够强大。这都是理论上的问题。
假设我有一个包含数百个表的庞大数据库,每个表都有一个引用用户表的用户列。
现在,如果我将用户列更改为具有外键约束,那么数据库大小的增加是否会引人注目?
答案 0 :(得分:2)
如果通过" 将用户列更改为具有外键约束"你的意思是:
alter table some_table
add constraint fk_some_table_users
foreign key (user_id)
references users (id);
然后答案是:不,这绝不会改变数据库的大小(除了系统目录中的一些额外行以存储约束的定义)。
约束将提高数据的可靠性,在某些情况下甚至可能帮助优化器删除不必要的连接或根据约束信息采取其他快捷方式。但是,插入或删除行时会产生很小的性能开销,因为需要验证约束。但是这个小开销并不会超过您在数据库中获得一致数据所带来的好处。
我从未见过声称能够控制其中的应用程序"在生产一段时间后,不需要数据清理。所以最好把这种检查留给数据库。