일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 객체지향 프로그래밍
- Thread
- 항해99단점
- jvm
- 소셜
- social login
- 프로세스
- 스레드
- object
- 오브젝트
- jwt
- 항해99장점
- 소셜로그인
- Instance
- 부트캠프추천
- 회고록
- IoC
- 객체
- process
- inversion of control
- 클래스
- bean
- 인스턴스
- API
- 쓰레드
- Dependency Injection
- DI
- class
- 항해99솔직후기
- 인스턴스화
- Today
- Total
로운's 기술노트
7장. 데이터 구조와 처리 본문
■ 대용량 저장장치
inode는 유닉스 운영체제에서 사용하는 자료 구조로, 파일 시스템 내부에 파일을 유지하는 중요한 정보를 담고 있다.
일반적으로 전체 파일 시스템 디스크 용량의 대략 1% 정도가 inode 테이블에 할당된다.
어떤 한 파일이나 디렉토리를 만들게 되면 1개의 inode가 만들어진다.
그 inode가 inode Table에 등록이 되고, 등록되는 entry-number를 그 inode에 대한 inumber라고 한다.
▶ inode에 대해 더 자세히 알고싶다면♬
■ 데이터베이스
B트리는 하나의 노드가 가질 수 있는 자식 노드의 최대 숫자가 2보다 큰 균형 트리이다.
만약 한 노드에 최대 M개의 자료가 배치되면 M차 B 트리라고 부른다.
ㅇ 특징
- 노드의 자료수가 M라면, 자식의 수는 M+1개이어야 한다.
- 각 노드 안에 키들은 오름차순 정렬된 상태로 저장된다.
- 한 노드 N의 왼쪽 서브트리는 N보다 작은 값으로 되어 있고, 오른쪽 서브트리는 큰 값으로 되어 있다.
- ROOT노드는 적어도 2개 이상의 자식을 가져야한다 (ROOT 노드로만 구성된 트리는 예외)
- 리프노드는 모두 같은 레벨에 있다(균형을 이루는 트리)
- 입력 자료는 중복될 수 없다.
ㅇ 탐색
ㅇ 삽입
ㅇ 삭제
1) 리프 노드에서 삭제
2) 중간 노드에서 삭제
B트리를 포함한 트리 구조는 자식 노드가 많아지게 되거나 하나의 노드에 키값이 적게 들어 있다면 검색 효율이 떨어 지게 된다. 또, 새로운 정보를 추가하거나, 삭제하게 되면 새롭게 노드를 쪼개거나 합치는 등의 '균형 맞춤' 과정을 다시 해야 하기 때문에 생성/삭제 작업이 자주 이뤄지는 필드라면 인덱스를 함부로 생성하지 않는 것이 좋다.
▶ B트리에 대해 더 자세히 알고싶다면♬
■ 인덱스
ㅇ 개념
인덱스는 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 가정할 때, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다.
ㅇ 장/단점
- 장점
1) 테이블을 조회하는 속도와 그에 따른 성능을 향상시킬 수 있다.
2) 전반적인 시스템의 부하를 줄일 수 있다.
- 단점
1) 인덱스를 관리하기 위해 DB의 약 10%에 해당하는 저장공간이 필요하다.
2) 잘못 사용할 경우 오히려 성능이 저하되는 역효과가 발생할 수 있다.
[참조]
https://visu4l.tistory.com/159
https://dongwook8467.tistory.com/131
https://mommoo.tistory.com/108
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=591923&logNo=220909643388
https://mangkyu.tistory.com/96
'항해99_'22.01~04 > Computer Science' 카테고리의 다른 글
9장. 웹 브라우저 (0) | 2022.02.21 |
---|---|
8장. 프로그래밍 언어 처리 (0) | 2022.02.13 |
5장. 컴퓨터 아키텍처와 운영체제 (0) | 2022.01.29 |
2장. 전자 회로의 조합 논리_ 디지털 컴퓨터의 사례 (0) | 2022.01.23 |