외래키(Foreign Key)는 데이터베이스에서 두 테이블 간의 관계를 정의할 때 사용하는 개념 외래키는 한 테이블의 필드(또는 컬럼)가 다른 테이블의 기본 키(Primary Key)를 참조할 때 사용 이렇게 하는 것으로 데이터의 일관성과 무결성이 보장되지만, 몇 가지 단점 또는 고려사항들이 있음 1. 성능 문제 외래키를 사용하면 INSERT, UPDATE, DELETE 작업 시 해당 테이블뿐만 아니라 참조하는 테이블까지 확인해야 함. 이로 인해 작업 속도가 느려질 수 있음. 2. 복잡성 증가 외래키 관계를 설정하면 데이터베이스 구조가 복잡해질 수 있음. 이로 인해 쿼리 작성이나 데이터베이스 관리가 어려워질 수 있음. 3. 삭제 제한 외래키로 참조되는 테이블의 데이터를 삭제하려고 할 때, 그 데이터를 참..
int 형으로 전화번호를 적재하는 컬럼을 생성하고, 전화번호 01012345678 을 저장하면 1012345678 로 변환되어 저장된다. 그래서 보통 데이터 타입을 varchar 로 선언하는 경우가 많은데, zerofill 설정을 해주면 값이 없으면 공백을 0으로 채워주기 때문에 01012345678가 정상적으로 출력된다. 그리고 전화번호는 절대 음수가 될 일이 없으므로 UNSIGNED-ZEROFILL 으로 설정해준다. 예시 : alter table user modify column number int(11) unsigned zerofill not null; 이 방식으로 하면 vachar 보다 메모리를 절약할 수 있어서 효율적이다.
1. 데이터베이스 이전시킬 때, 중간에 끊기는 숫자가 있으면 그 숫자부터 다시 센다. (데이터가 많을때, 예를 들면 1~100까지 데이터가 있었다고 치고, 52가 없는 상태면 새로 이전하는 db에서 데이터가 새로 들어올 때, 101번을 안매겨주고 52번을 매겨준다. 그 다음에 101번을 매겨줘야 하는데 53번을 매겨준다. 근데 53번은 이미 있으니 에러를 밷는다.) 2. 카운트가 1억 정도까지 가면 index 메모리 낭비가 심해진다.
데이터가 많아지면 mysql에 부하가 걸리므로 파티션을 나눠줘야 한다. MySQL에서는 4가지 파티션 종류를 지원한다. - Range 파티션 - List 파티션 - Hash 파티션 - Key 파티션 Range 파티션 (출처 : https://hoing.io/archives/8527) 파티션 키의 연속된 범위로 파티션을 정의 하는 방식 이며 가장 일반적으로 사용 되는 파티션 종류 입니다. MAXVALUE 파티션을 이용해 정의 되지 않은 값의 범위의 키 값을 저장을 하게 됩니다. Range 파티션에서 NULL은 어떤 값보다 작은 값으로 간주 됩니다. 날짜 컬럼의 값으로 파티션 할 경우 다음의 예시 를 주의 해야 합니다. - UNIX_TIMESTAMP() 이용한 변환 식을 파티션 키로 사용 - 날짜를 문자열로..