일단 씻고 나가자
25.02.24 본문
2025. 02. 24 월요일
- [Java] List의 sort 방법?
: Collections.sort(list) / Collections.sort(list, Collections.reverseOrder())
list.sort(Comparator.naturalOrder()) / list.sort(Comparator.reverseOrder())
Collections.sort의 경우 reverseOrder가 Collections의 메서드인 것과 달리,
list.sort의 경우 정방향/역방향 모두 선언해야 하며, Comparator의 메서드를 활용.
- [DB] 테이블에서의 카디날리티? 인덱스 설계 시의 영향?
: DB에서 Cardinality는 2가지 의미가 존재한다.
테이블 간 관계 -- One-to-One, Many-to-One...
테이블 -- 컬럼(attribute) 에서의 고유한 값의 수
테이블에서의 cardinality는 2번을 의미하며, 특정 속성이 가진 모든 record 값 중
Distinct한 값의 개수를 의미한다.
중복 값이 적은 = 데이터가 거의 unique = cardinality 높음 (ex. 주민등록번호)
중복 값이 많은 = 데이터가 거의 겹침 = cardinality 낮음 (성별)
인덱스 설정 시 조회 결과가 많다면(중복 값이 많다면) full scan에 가까워지므로
인덱스는 최대한 적은 중첩의 설정을 가지는 attribute에 거는 것이 성능상 이점이다.
즉, cardinality가 높은 column에 index를 거는 것이 좋음.
- [DB] stored function에서 함수 한정자의 종류, 설명?
: stored function에서 returns 선언 이후 자리하는 함수 한정자의 종류는 다음과 같다.
DETERMINISTIC -- 함수가 동일 입력에 대해 동일 출력을 보장
NO SQL -- 함수가 SQL 데이터를 read/write 하지 않음
READS SQL DATA -- 함수가 SQL 데이터를 read만 함