我想在julia中随机创建一个唯一的交易ID,即IBAN。
由于IBAN域是[AZ] {2} [0-9] {32}或[AZ] {34}(即最大10 ^ 51),因此我以每千年[0:10 ^ 58]到达了交易ID范围假设每个帐户每天最多10个txns。
在TXN处理系统和决策支持系统中,是否应该选择事务ID类型为String或Bigint及其优缺点?
如果您要查找的是标识符,则UUID之类的系统可能更合适。在Julia中,UUIDs
标准库中的模块可以帮助您:
julia> using UUIDs: uuid4
julia> import Random
julia> Random.seed!(43);
julia> uuid4()
UUID("7d6398a5-f5bb-4164-8552-1668b964e46f")
julia> uuid4()
UUID("93938d68-980f-40b1-b1f9-789c5230116c")
Run Code Online (Sandbox Code Playgroud)
与UUID的比较比与之比较快String
,并且与BigInt
。这是使用BenchmarkTools.jl的快速基准测试,setup
运行时估计未考虑该部分:
julia> using BenchmarkTools: @btime
julia> @btime s1 == s2 setup=(s1=string(uuid4()); s2=string(uuid4()))
5.685 ns (0 allocations: 0 bytes)
julia> @btime s1 == s2 setup=(s1=uuid4(); s2=uuid4())
1.640 ns (0 allocations: 0 bytes)
julia> @btime s1 == s2 setup=(s1=BigInt(rand(Int)); s2=BigInt(rand(Int)))
2.976 ns (0 allocations: 0 bytes)
Run Code Online (Sandbox Code Playgroud)