일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 동적 프로그래밍
- 규칙없음
- 나는 아마존에서 미래를 다녔다
- 독후감
- Python
- 파이썬
- LongestPalindromicSubstring
- leetcode
- 블린이
- mysql #numa #swap #memory
- 트리
- Unique Paths
- 프로그래머스
- 삼성역량테스트
- No Rules Rules
- 아마조니언
- 그거봤어?
- list of list
- Dynamic Programmin
- 리트코드
- minimum path sum
- Envoy
- 알고리즘
- 와썹맨
- 기술적 채무
- 김태강
- BFS
- technical debt
- 리스트의 리스트
- 삼성인 아마조니언 되다
- Today
- Total
목록전체 글 (51)
개발자가 되고 싶은 준개발자
MySQL 8.0.18 부터는 EXPLAIN ANALYZE로 쿼리를 분석할 수 있다. EXPLAIN ANALYZE가 기존 MySQL 8.0 부터 제공되던 EXPLAIN FORMAT=TREE 와 다른 점은 실행 계획(estimated cost) 뿐만 아니라 실제 실행했을 때 비용도 같이 보여준다는 점이다. EXPLAIN ANAYLYZE를 사용해 보기 위해 인덱스를 필요로 하는 쿼리에 대해 IGNORE INDEX와 USE INDEX 힌트를 사용해 인덱스를 사용하지 않을 때와 사용할 때 실행 계획을 비교해 봤다. 먼저 수행된 단계가 가장 안 쪽으로 indent되어 표시된다. 따라서 먼저 수행된 table scan부터 보면 된다. Table Scan 단계) 실행 계획 cost: 574010 rows:549000..
MySQL 8.0.25버전에서 Prepared statement가 index 못 타는 버그를 발견하여 버전 업그레이드를 하게 되었다. Prepared Statement란? Prepared Statement란 파라미터를 미리 채우지 않고, 공란으로 둔 후에 값을 따로 덧붙여서 쿼리하는 방식이다. mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse'; mysql> SET @a = 3; mysql> SET @b = 4; mysql> EXECUTE stmt1 USING @a, @b; +------------+ | hypotenuse | +------------+ | 5 | +------------+ mysql> DEALLOCATE ..
인덱스가 있어도 복제 방식으로 인해 unique key가 필요한 경우가 있다. 특히 binlog 기반으로 복제하는 MySQL의 경우 대량의 데이터 변경을 한 쿼리에서 할 경우 복제 지연이 발생할 수 있다. 예를 들면, ROW-BASED 복제 환경에서 unique key나 primary key가 없는 테이블에 Primary에서 100만건 데이터를 삭제한다고 가정해보자. (ROW-BASED 복제는 binary log를 쿼리 기준으로 기록하는 것이 아니라 쿼리에서 변경된 데이터 row 기준으로 기록하는 것을 말한다.) Primary에서는 1회의 index/table full scan으로 처리되지만, row-based 복제에서는 binary log가 쿼리 단위가 아닌 변경된 데이터 기준으로 쌓이게 된다. 따라서..