我很困惑,如果在MySQL中唯一约束是物理索引还是虚拟索引?然后,当列上定义了唯一约束时,是否还需要创建哈希列并在哈希列上定义索引以加快查询过程,因为唯一约束列包含大多数超过40个字符的可变数量的字符并且平均50 +?
总记录超过1.5亿。
我已经提出了另一个问题,其中包含哈希及其索引计划的详细信息。 index on url or hashing considering RAM
答案 0 :(得分:1)
唯一约束几乎维护索引,但从技术上讲它是一个需要索引的约束。但是如果你想采用哈希只是为了使搜索速度超过你需要使哈希列成为唯一的,并且如果你选择一个强哈希则不需要担心冲突。如果您有256位散列,如果您选择其他具有50+个字符平均值的文本列,那么1.5亿个样本不会太大而不会有碰撞机会。这样,您可以节省大约2GB的索引空间,但代价是4GB的磁盘空间。