一个哈希索引优化的实践

背景:

数据库表中存储了一个“Git分支地址”,需要通过这个分支地址来反向查询。如何建立高效索引?

实践一:

首先增加一个字段reverseurl存储url反向字符串,然后在reverseurl上建立长度32的索引。

这基本上解决了查询效率问题,效率还不错。

优势:实现简单、简单取反函数与定长索引
劣势:reverse_url占用的空间与url一样长,同时索引长度很长。

相信各位看官已经看破玄机:缩短索引长度

其实哈希索引能解决这个问题,但是mysql的引擎中没有支持的。想想办法。

那么就添加一个字段url_idx.在程序中利用一种hash算法计算出这个值存储数据库,然后添加普通索引。

算法个人了选择:CRC32('url') => url_idx

总结

由于没有哈希索引,需要自己维护计算过程,但是效率和空间都得到提升。

posted on 2017-11-22 17:21  岁月无痕之玻璃心  阅读(232)  评论(0)    收藏  举报