안녕하세요.
디비는 오라클이고, 주민번호가 암호화되어 있고,
생년월일(주민번호앞 6자리)로 검색하려고 하는데 검색 속도가 안 나오네요
도움 부탁드립니다.
select * from jumin_table where 복호화함수(주민번호) like '주민번호앞6자리'||'%';
이런 식으로 검색하고자 합니다.
검색 속도를 높일 수 있는 좋은 방법 부탁드리겠습니다.
감사드립니다.
혹시 조회에 쓰이는 주민번호 6자리만 복호화 해서 따로 저장할 수는 없나요?
제 생각으로는 조회 데이터의 복호화된 컬럼을 만드는게 제일 효과가 좋아보이긴 합니다만....
이러면 index도 처리 가능하고, 라인마다 함수를 적용하는 시간을 크게 단축 시킬 수 있을거 같습니다..
암호화 기준에 안맞을듯 하긴 하네요.
답변 감사합니다. 말씀대로 개인 정보 보호에 안 맞을 것 같긴 하지만 고려 한 번 해 보도록 하겠습니다.
1. 이퀄(=) 검색이라면? 복호화 함수가 아닌 암호화 함수를 이용해 검색하면 되는데
- 변경전 : 복호화함수(암호화항목) = '검색어'
- 변경후 : 암호화항목 = 암호화함수('검색어')
2. LIKE 검색이라면? 함수기반 인덱스를 이용하셔야 할 것 같습니다.
- 주민번호 복호화 전체 인덱싱이 부담된다면? (개인정보보호)
- 주민번호 복호화 앞자리만 잘라서 인덱싱
답변 감사합니다. 함수 기반 인덱싱을 하면 인서트 등 발생시 인덱싱 만드는데 소요되는 시간은 고려하지 않아도 될까요?
인덱스가 추가되면
- 조회는 빨라집니다. <- 획기적으로 빨라짐
- 갱신은 느려집니다. <- 대용량 갱신이 아니라면 체감 못할 듯
감사합니다.