如何在我的innodb表中添加外键约束而不对列进行索引?

时间:2012-05-16 04:49:10

标签: mysql phpmyadmin

我读了一些关于表索引的建议,并且我发现当你的sql查询运行缓慢时应该引入索引..

我的问题是我在一个表中索引几乎所有列。此表与其他表绑定,例如users表列country与country table

绑定
user table          country table
id                  id
countryId           name

我在countryId列中添加了一个索引,因此我可以将其链接到country表的id,因为当我没有列上的索引时,我无法创建外键约束。

基本上我有很多列链接到其他表只是为了向我的列添加约束。

例如,国家表不超过100,所以如果有人不小心插入了101的值,mysql就不会接受那个数据,因为国家表只有1-100 ..

那么如何避免添加索引并仍具有表数据约束功能?

1 个答案:

答案 0 :(得分:1)

  1. 这个建议很糟糕。

  2. 您要搜索的索引列或您需要特殊约束的位置,例如唯一值。

  3. 不添加索引的唯一原因是它们确实占用了空间。但是,除非您正在处理如此多的数据以至于需要数据库管理员,否则您可能不必担心它。