hbw-utils - UUIDUtils

209 阅读1分钟

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

UUIDUtils的功能:

  1. 随机生成36或32位的UUID
  2. 生成特定字符串的36或32位的UUID

github.com/houbbbbb/ut…

public class UUIDTest {

    @Test
    public void uuidTest() {
        String uuid = UUIDUtils.uuid36("abc");
        System.out.println("uuid 36 : " + uuid);
        assert uuid.length() == 36;

        uuid = UUIDUtils.uuid32("abc");
        System.out.println("uuid 32 : " + uuid);
        assert uuid.length() == 32;

        uuid = UUIDUtils.uuid32();
        System.out.println("uuid 32 random : " + uuid);
        assert uuid.length() == 32;

        uuid = UUIDUtils.uuid36();
        System.out.println("uuid 36 random : " + uuid);
        assert uuid.length() == 36;
    }
}

随机生成UUID大家都比较清楚了,今天要说的是根据字符串生成UUID,大家有没有想过,如果在一个数据库中有两个字段需要查询时, 我们一般会做联合索引,但是查询两个字段的效率毕竟比不过一个字段,并且在较为复杂的环境中就不止两个字段那么简单了,那么如何做呢?
我这里有一个解决方案,就是将两个或多个字段连接成一个字符串,然后对这个连接后的字符串使用UUID工具计算其UUID的值,这样就可以将生成的UUID作为唯一的查询字段来代表多个字段的联合体进行查询,这样就只查询一个字段就达到了查询多个字段的效果,查询效率不言而喻,并且字段长度没有发生任何变化,数据表中也只增加了一个查询字段而已,这样做绝对是值得的。

以上就是我在实际工作中琢磨出的提高查询效率的解决方法,希望对大家有所帮助。

在这里插入图片描述