如果要查询url的话,太长会影响到效果,所以文中提到给表添加一个例如url_crc的列,通过crc32函数进行查询,
但不明白为什么文中提到的 "这个缺点就是要维护哈希值",以及手动创建触发器维护的话会不会有副作用?
1."这个缺点就是要维护哈希值",这句话的意思是如果url_src变了,用crc32生成的哈希值也要跟着变,跟着url_src一起insert或update.我觉得这个维护代价并不高.
2."手动创建触发器维护的话会不会有副作用",这个意思是说,为了降低维护复杂度,可以用触发器解决,每次只要update或insert url_src这个字段,由触发器自动更新crc32这个字段.
触发器的副作用可以这么考虑:如果触发器在记录更新前被触发,它一但出错,整条记录就会插入失败.如果触发器在记录更新后被触发,那就需要多做一次更新,会导致性能下降.没有两全齐美的办法.但我觉让触发器在记录更新前被触发就行,对于简单的操作这个风险不大,我们就是这么用的.
3.哈希值作绝对匹配的效率会很高,缺点是不能做模糊匹配,所以还可以像楼上说的给url_src字段加上前缀索引.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。