开发者社区> 问答> 正文

mysql查询url碰到的问题

如果要查询url的话,太长会影响到效果,所以文中提到给表添加一个例如url_crc的列,通过crc32函数进行查询,
但不明白为什么文中提到的 "这个缺点就是要维护哈希值",以及手动创建触发器维护的话会不会有副作用?

展开
收起
落地花开啦 2016-02-14 11:26:59 2684 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    1."这个缺点就是要维护哈希值",这句话的意思是如果url_src变了,用crc32生成的哈希值也要跟着变,跟着url_src一起insert或update.我觉得这个维护代价并不高.

    2."手动创建触发器维护的话会不会有副作用",这个意思是说,为了降低维护复杂度,可以用触发器解决,每次只要update或insert url_src这个字段,由触发器自动更新crc32这个字段.

    触发器的副作用可以这么考虑:如果触发器在记录更新前被触发,它一但出错,整条记录就会插入失败.如果触发器在记录更新后被触发,那就需要多做一次更新,会导致性能下降.没有两全齐美的办法.但我觉让触发器在记录更新前被触发就行,对于简单的操作这个风险不大,我们就是这么用的.

    3.哈希值作绝对匹配的效率会很高,缺点是不能做模糊匹配,所以还可以像楼上说的给url_src字段加上前缀索引.

    2019-07-17 18:42:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像