我在数据库中有一个几乎唯一的字段:98%的时间值是唯一的,但它可能有一些重复.我不会在这个领域做很多搜索; 一个月说两次.该表目前有大约5000条记录,每月将获得约150条记录.
该字段是否应该有索引?
我正在使用MySQL.
我认为'近乎独特'可能是一个红鲱鱼.数据要么是唯一的,要么不是,但这并不能确定您是否希望根据性能原因对其进行索引.
5000条记录实际上并不多,无论你是否有索引,搜索仍然很快.按照这种插入速度,你需要3年时间才能达到10000条记录,这仍然不多.
我个人不打算添加索引,但如果你这样做也无所谓.
决定添加索引时需要考虑的是插入速度和选择速度之间的权衡.
没有索引,select
在该字段上执行操作意味着MySQL必须遍历每一行并读取每个字段.添加索引会阻止这种情况.
索引的缺点是每次插入数据时,DB除了添加数据外还必须更新索引.这通常是一个很小的开销,但如果你有大量的索引,并且正在进行大量的写操作,你真的会注意到它.
当您在数据库中获得这么多行时,您仍然需要一个索引,否则您的选择将需要一整天,但这只是需要注意的事项,以便您最终不会在字段上添加索引"只是如果我需要它"