클러스터 인덱스와 넌 클러스터 인덱스 알아보기
Database2024. 7. 17. 16:56클러스터 인덱스와 넌 클러스터 인덱스 알아보기

우리의 데이터는 실제로 보조기억장치(하드디스크, SSD, USB 등)에 저장됩니다. 하드디스크는 원형의 플레이트로 구성되어 있습니다. 플레이트는 트랙으로 나뉘며, 트랙은 다시 몇 개의 섹터로 나뉩니다.원형의 플레이트는 매우 빠른 속도로 회전하고, 회전하는 플레이트에 하드디스크의 암과 헤드가 접근하여 원하는 섹터에서 데이터를 가져옵니다. 하드디스크에 저장된 데이터를 읽어오는 데 걸리는 시간을 액세스 시간(access time)이라 합니다. 액세스 시간은 데이터의 저장 및 읽기에 많은 영향을 끼칩니다.액세스 시간 = 탐색시간(액세스 헤드를 트랙에 이동시키는 시간) + 회전 지연시간(섹터가 액세스 헤드에 접근하는 시간) + 데이터 전송시간(데이터를 주기억장치로 읽어오는 시간) 이러한 액세스 시간으로 인해, D..

Database2024. 7. 12. 17:53[SQL] 기본키(PK)가 꼭 필요할까?

MySQL을 공부하는 과정에서  safe_update_mode에 대해 알게 되었습니다. 이 기능은 기본키(PK)를 통한 update나 delete 작업이 아니면 허용하지 않는다는 점에서 데이터베이스의 안정성을 높이는 역할을 합니다. 그런데 만약 테이블에 기본키가 존재하지 않는다면, 이 기능이 필요 없지 않을까라는 생각이 들었습니다. 여기에서 더 나아가, 테이블에 기본키가 꼭 필요한가에 대한 궁금증이 생겼습니다. 기본키(Primary Key)기본키(Primary Key, PK)는 여러 후보키 중 하나를 선정해 대표로 삼는 키를 말합니다. 기본키의 제약조건은 아래와 같습니다.테이블 내 튜플을 식별할 수 있는 고유한 값을 가져야 한다.NULL 값은 허용하지 않는다.키 값의 변동이 일어나지 않아야 한다.최대한 ..

[MySQL] 외래 키(Foreign Key) 삭제하기
Database2024. 2. 24. 19:46[MySQL] 외래 키(Foreign Key) 삭제하기

상황 코드를 수정하다 보니 Diary 테이블에 사용하지 않는 외래키들이 많아서 삭제하려고 합니다. (보기 불편..ㅇㅁㅇ) 외래키 삭제 외래키를 삭제하기 위해서는 제약조건을 확인해야 합니다. 제약조건(constraint)은 데이터의 무결성을 지키기 위해, 데이터를 입력받을 때 실행되는 검사 규칙을 의미합니다. select * from information_schema.TABLE_CONSTRAINTS; 위의 코드로 조회를 하였더니, diary 테이블에 제약 조건이 여러 개가 있습니다. 이 중에서 사용하지 않는 외래키인 recommended_activity_id와 stress_level_id를 찾아야 합니다. show create table diary 위의 결과에서 제약 조건명을 확인합니다. 예를 들어 str..

image