본문 바로가기

MariaDB7

커버드 쿼리 튜닝 같이 일하는 주니어 개발자가 다시 도움을 요청해왔다. INSERT * SELECT을 처리하는데 시간이 오래 걸려서 lock time out이 나요!! 다음은 기존 쿼리의 일부분이다. create index table1_index on table1 (post, status) UNION ALL .... table2.currency, ... FROM table table1 LEFT JOIN (SELECT column1, column2 FROM table2 GROUP BY column1) table2 ON table1.partner = table2.partner WHERE table1.post IS NOT NULL AND table1.status IN ('....') AND table1.complete >= D.. 2022. 12. 1.
Default character 변경 테스트 서버 하나에 한글입력이 안되는 현상이 발견. 확인해보니 처음 만든 사람이 latin1_swedish?로 만들었다. 현재 사용중인 상용 정보는 utf8 이모지라서 동일하게 변경해줌. SELECT default_character_set_name, DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE schema_name = "schema명"; #alter schema schema명 collate utf8mb4_unicode_ci; #alter table table명 convert to character set utf8mb4 collate utf8mb4_unicode_ci; 2022. 11. 30.
Mysql groupby 최신데이터 1row 값 EXPLAIN SELECT R1.sender_id, R2.status FROM ( SELECT sender_id, MAX(tseq) AS seq FROM 조회테이블 AS R WHERE R.create_at BETWEEN '2022-01-01 00:00:00' AND '2022-07-31 23:59:59' GROUP BY sender_id ORDER BY NULL ) AS R1 INNER JOIN 조회테이블 AS R2 ON R1.seq = R2.seq AND R2.status = '상태값' 보통 검색해보면 다른 정보로 JOIN을 시도하는데, 기본 키로 조회 시도. 회사의 해당 테이블의 컬럼 수가 160개정도로.. 해당 쿼리를 실행하려고 하면 데이터베이스가 사망하려고 한다. EXPLAIN SELECT sen.. 2022. 9. 1.
mariadb AUTO_INCREMENT 테스트 서버 5개 중에 한개의 테이블이 AUTO_INCREMENT가 풀려있는 상태였다. 기본 키도 없는 힙 테이블에 자료만 들어가고 있는 상황이라 변경하기로 함. SET @cnt = 0; UPDATE table_name SET column = @cnt:=@cnt + 1 WHERE 1=1; SELECT max(column) FROM table_name ALTER TABLEtable_name AUTO_INCREMENT = 1656; 2021. 10. 14.