자주 varchar(16)
에 신용 카드 번호를 저장했습니다. 작동하지만 숫자 당 17 바이트가 필요합니다.신용 카드 번호에 앞에 오는 0이 포함될 수 있습니까?
스토리지는 그다지 큰 거래는 아니지만 스토리지 요구 사항과 테이블 검색 시간 모두에있어 효율적이라고 생각합니다.
decimal(16) unsigned
을 사용할 수 있다면 저장소 요구 사항을 7 또는 8 바이트로 줄일 수 있으며 호환성의 상당 부분과 가독성을 유지할 수 있습니다.
이렇게하면 앞에 오는 0이 제거됩니다. 0이 아닌 번호로 시작하는 모든 신용 카드 번호에 의존 할 수 있습니까?
신용 카드는 항상 16 자리입니까? 그렇다면 패드 왼쪽에 0으로 남겨 둡니다. – tenfour
차이를 만들기 위해 수십억 개의 신용 카드 번호를 저장하고 있습니까? 그렇다면이 질문에 대한 답변을 아직 모르는 상태에서 PCI DSS를 준수합니까? 나는 와우, 당신은 varchar에서만 이것을 할 수 있다고 말하고 싶습니다. 암호화 알고리즘은 먼 길을 왔을 것입니다! – Layke
@tenfour : 항상 그런 것은 아닙니다. 때로는 15 자리 숫자입니다. –