우리는 8 백만 행 DB에 UUID 열을 추가했으며 기본값은 postgres uuid_generate_v4()
함수를 사용하여 생성됩니다.postgres를 사용할 때 많은 중복 값 uuid_generate_v4
current = 1
batch_size = 1000
last_id = 80000000
while current < last_id
start_id = current
end_id = current + batch_size
puts "WORKING ON current: #{current}"
ActiveRecord::Base.connection.execute <<-SQL.squish
UPDATE table_name
SET public_id = uuid_generate_v4()
WHERE id BETWEEN '#{start_id}' and '#{end_id}' AND public_id IS NULL
SQL
current = end_id + 1
end
그러나, 스크립트의 끝에서, 우리는 우리가 135 개 중복을 남겼 일부도이 가능한 방법 3.를 갖는
우리는이 스크립트를 사용하여 UUID를 채웠다?uuid_generate_v4()
함수는 이러한 높은 확률로 중복 코드를 생성합니까?
호스트에서 https://linux.die.net/man/3/uuid_generate_random을 확인하는 것이 좋습니다. –
임의의 숫자 소스를 의심합니다. http://ralphbecket.blogspot.com.au/2011/09/birthday-paradox-and-guid-collisions.html –