一个哈希索引优化的实践
背景:
数据库表中存储了一个“Git分支地址”,需要通过这个分支地址来反向查询。如何建立高效索引?
实践一:
首先增加一个字段reverseurl存储url反向字符串,然后在reverseurl上建立长度32的索引。
这基本上解决了查询效率问题,效率还不错。
优势:实现简单、简单取反函数与定长索引
劣势:reverse_url占用的空间与url一样长,同时索引长度很长。
相信各位看官已经看破玄机:缩短索引长度
其实哈希索引能解决这个问题,但是mysql的引擎中没有支持的。想想办法。
那么就添加一个字段url_idx.在程序中利用一种hash算法计算出这个值存储数据库,然后添加普通索引。
算法个人了选择:CRC32('url') => url_idx
总结
由于没有哈希索引,需要自己维护计算过程,但是效率和空间都得到提升。
浙公网安备 33010602011771号