스터디노트/DB
-
ALGORITHM=INPLACE, LOCK=NONE으로 테이블 변경하기스터디노트/DB 2022. 2. 16. 16:16
크기가 큰 테이블에 컬럼이나 인덱스를 추가할 때 테이블의 크기가 큰 경우 락 타임이 길어진다. ALGORITHM, LOCK절을 사용하면 락을 걸지 않고 컬럼이나 인덱스를 추가/삭제할 수 있다. ALTER TABLE tbl_name ADD COLUMN column_name column_definition, ALGORITHM=INPLACE, LOCK=NONE; ALTER TABLE tbl_name CHANGE old_col_name new_col_name data_type, ALGORITHM=INPLACE, LOCK=NONE; 참고자료 https://dev.mysql.com/doc/refman/5.6/en/innodb-online-ddl-operations.html
-
MySQL IFNULL, CASE WHEN, COALESCE스터디노트/DB 2021. 12. 15. 17:03
MySQL에서 NULL 처리 IFNULL SELECT IFNULL('컬럼', 'null시 대체 값') FROM 테이블; CASE WHEM SELECT CASE WHEN 조건1 THEN 반환 값 ELSE 조건에서 필터링 되지 않는 경우 END AS something FROM 테이블; COALESCE : 지정한 표현식 중 NULL이 아닌 첫번째 값을 반환한다. SELECT COALESCE('컬럼', 'null시 대체 값') FROM 테이블; SELECT COALESCE('컬럼1', '컬럼2', '컬럼3') -- 컬럼1~컬럼3에서 null이 아닌 첫번째 값을 반한다. FROM 테이블;
-
replace into vs insert into스터디노트/DB 2021. 11. 24. 13:01
replace into MySQL이나 MariaDB에서 테이블에 데이터를 insert하는 명령어 테이블의 키를 기준으로 해서 동일한 키를 입력하면 해당 데이터는 삭제하고 넣으려는 데이터로 대체하여 insert한다. Primary Key 기준으로 작동 예제 이름 : 김태호, 급여 : 10의 데이터를 -> 이름 : 김태호, 급여 : 20으로 변경해보기 create table salary ( name varchar(50) not null comment '이름' primary key, salary int null comment '급여' ) comment '샐러리'; INSERT INTO salary (name, alary) VALUES ('김태호', 10..