전체 글56 [OCP] 1z0-082 문제_1 보호되어 있는 글 입니다. 2024. 2. 4. [Mysql] Metadata_lock 원인 쿼리 확인 및 lock 해제 Mysql을 사용하면서 DB 작업 중에 Metadata lock은 비교적 흔하게 발생한다. 내가 주로 경험한 것은 DBeaver 등의 클라이언트 툴에서 autocommit이 꺼진 상태로 select 등의 작업이 수행된 후 해당 object(table)에 alter table등의 DDL 문을 수행한 경우에 발생하는 metadata lock이었다. 주로 이런 경우는 show full processlist;로 원인이 되는 쿼리를 찾아도 쿼리는 이미 종료된 이후이기 때문에 processlist의 info에 null로 나와 원인인 쿼리를 정확히 알 수 없는 경우가 많다. 원인이 되는 쿼리가 object에 대한 lock을 해제하지 않으면 ddl문을 재차 수행해도 metadata lock으로 인하여 제대로 수행되지 .. 2024. 1. 24. [Mysql] Error Code 1170: blob/text column used in key specification without a key length 인덱스 생성 시 다음과 같은 에러를 볼 수 있다. Error Code 1170: blob/text column used in key specification without a key length BLOB타입과 TEXT타입은 index를 생성하지 못함 -> BLOB, TEXT 타입이 아닌 컬럼으로 인덱스 생성해야함 2022. 2. 25. group by 성능 튜닝 group by절은 테이블 스캔 후 결과를 임시테이블에 넣어 집계를 하는 과정을 거침. 데이터의 양이 많아질 수록 속도가 느려짐. index 생성으로 임시테이블 생성없이 빠르게 데이터를 가져올 수 있음 select seq ,yyyymm ,max(score) from tb_test_score group by seq,yyyymm; -> group by 컬럼 순서와 인덱스 컬럼 순서가 동일해야함 -> max, min 함수에 쓰이는 컬럼도 인덱스에 들어가야 함 처음엔 위와 같은 쿼리의 실행속도가 느릴 때 인덱스 ix_test_score(seq, yyyymm) 생성 했을 때 오히려 속도가 느려졌다. 인덱스를 ix_test_score(seq, yyyymm, score)로 max함수에 쓰이는 컬럼까지 포함하여 재생성.. 2022. 2. 20. [PostgreSQL] foreign table 성능 postgresql Foreign table에는 index 생성 불가 ERROR: cannot create index on foreign table "tablename" -> 데이터량이 많을수록 속도는 느려짐 이 때 참고할 수 있는 페이지 ->https://www.enterprisedb.com/blog/how-plan-queries-involving-foreign-postgresql-tables How to Plan Queries Involving Foreign PostgreSQL Tables Cost based optimization www.enterprisedb.com https://dba.stackexchange.com/questions/194507/how-do-i-set-the-option-use.. 2022. 1. 15. [PostgreSQL] Sequence 권한 1. Sequence 생성 SQL> CREATE SEQUENCE 시퀀스명 START WITH 1 INCREMENT BY 1; 2. Sequence 조회 SQL> SELECT * FROM PG_CATALOG.PG_SEQUENCES; 3. Sequence 값 조회, 권한 부여 SQL> SELECT CURRVAL('시퀀스명'); SQL Error [55000]: ERROR: currval of sequence "sequence_name" is not yet defined in this session 해결 : currval은 현재 세션에서 nextval로 얻은 가장 최근 값을 반환하므로 nextval이 호출되지 않았다면 오류가 발생됨. nextval('시퀀스명'); 실행 후에 currval('시퀀스명') 을 호.. 2021. 11. 17. 이전 1 2 3 4 5 ··· 10 다음 반응형