
우리의 데이터는 실제로 보조기억장치(하드디스크, SSD, USB 등)에 저장됩니다. 하드디스크는 원형의 플레이트로 구성되어 있습니다. 플레이트는 트랙으로 나뉘며, 트랙은 다시 몇 개의 섹터로 나뉩니다.원형의 플레이트는 매우 빠른 속도로 회전하고, 회전하는 플레이트에 하드디스크의 암과 헤드가 접근하여 원하는 섹터에서 데이터를 가져옵니다. 하드디스크에 저장된 데이터를 읽어오는 데 걸리는 시간을 액세스 시간(access time)이라 합니다. 액세스 시간은 데이터의 저장 및 읽기에 많은 영향을 끼칩니다.액세스 시간 = 탐색시간(액세스 헤드를 트랙에 이동시키는 시간) + 회전 지연시간(섹터가 액세스 헤드에 접근하는 시간) + 데이터 전송시간(데이터를 주기억장치로 읽어오는 시간) 이러한 액세스 시간으로 인해, D..
MySQL을 공부하는 과정에서 safe_update_mode에 대해 알게 되었습니다. 이 기능은 기본키(PK)를 통한 update나 delete 작업이 아니면 허용하지 않는다는 점에서 데이터베이스의 안정성을 높이는 역할을 합니다. 그런데 만약 테이블에 기본키가 존재하지 않는다면, 이 기능이 필요 없지 않을까라는 생각이 들었습니다. 여기에서 더 나아가, 테이블에 기본키가 꼭 필요한가에 대한 궁금증이 생겼습니다. 기본키(Primary Key)기본키(Primary Key, PK)는 여러 후보키 중 하나를 선정해 대표로 삼는 키를 말합니다. 기본키의 제약조건은 아래와 같습니다.테이블 내 튜플을 식별할 수 있는 고유한 값을 가져야 한다.NULL 값은 허용하지 않는다.키 값의 변동이 일어나지 않아야 한다.최대한 ..
![[MySQL] 외래 키(Foreign Key) 삭제하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FblBEwt%2FbtsFjUEXYQI%2FAAAAAAAAAAAAAAAAAAAAAPEYlXWDkdPZDzDN4kEYg2Sz1I91L6HQ3HHpVxZaT4ai%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3D%252FwbEktFVrxvXLTgqT3CYBRHt8fw%253D)
상황 코드를 수정하다 보니 Diary 테이블에 사용하지 않는 외래키들이 많아서 삭제하려고 합니다. (보기 불편..ㅇㅁㅇ) 외래키 삭제 외래키를 삭제하기 위해서는 제약조건을 확인해야 합니다. 제약조건(constraint)은 데이터의 무결성을 지키기 위해, 데이터를 입력받을 때 실행되는 검사 규칙을 의미합니다. select * from information_schema.TABLE_CONSTRAINTS; 위의 코드로 조회를 하였더니, diary 테이블에 제약 조건이 여러 개가 있습니다. 이 중에서 사용하지 않는 외래키인 recommended_activity_id와 stress_level_id를 찾아야 합니다. show create table diary 위의 결과에서 제약 조건명을 확인합니다. 예를 들어 str..