개요 이번 글에서는 Kotlin, Spring Cloud Function을 이용하여 함수를 작성하고, AWS Lambda에 업로드하는 방법을 설명하고자 한다. Spring Boot 프로젝트 생성 Spring Initializr 웹사이트를 방문하여 아래 옵션으로 빠르게 시작점이 되는 빈 프로젝트를 생성할 수 있다. 브라우저에서 https://start.spring.io/ 접속 → Project: [Gradle Project] 선택 (기본값: Maven Project) → Language: [Kotlin] 선택 (기본값: Java) → Spring Boot: 2.X.X (기본값이 가장 최신 버전) → Packaging: [Jar] 선택 → Java: [11] 선택 → [Generate] 클릭 다운로드가 완료..
개요 최근 전에 경험하지 못한 슬로우 쿼리 이슈를 해결하면서 허탈한 마음과 함께 정리하였다. 확인된 이슈 인덱스가 생성되어 있는 컬럼에 대해 2개 이상의 복수개의 파라메터를 IN 조건으로 조회하면 무조건 10초 이상의 슬로우 쿼리가 발생한다. 대상 테이블은 약 2천만개의 로우를 가진 파티셔닝 되지 않은 테이블이다. # 파라메터가 1개일 경우 # 슬로우 쿼리가 발생하지 않음, 1ms 소요 SELECT * FROM foobar WHERE id IN (1); # 파라메터가 2개 이상일 경우 # 슬로우 쿼리가 발생, 최소 10초 이상 소요 SELECT * FROM foobar WHERE id IN (1, 2); 파라메터가 1개일 때만 인덱스를 사용하고, 파라메터가 2개 이상이면 테이블이 무조건 풀스캔된다. US..
개요 최근 슬로우 퀴리 이슈를 해결하면서 비약적인 속도 향상을 경험했는데, 사실 지금도 완전히 이해가 되지 않는 기묘한 부분이라 먼저 정리해둔다. 확인된 이슈 문제의 쿼리는 아래 모양새의 전형적인 페이지네이션 쿼리이다. (실제 운영 쿼리는 복잡한 여러 JOIN 절이 추가되어 있다.) SELECT * FROM foo WHERE ... ORDER BY created_at, id LIMIT 500 OFFSET 0; 신기한 점은 대부분의 쿼리 조건에서는 전혀 문제가 없었지만 특정 조건에서만 ORDER BY, LIMIT, OFFSET의 조합이 30~50초의 슬로우 쿼리로 모니터링되었다.처음에는 WHERE 조건의 대상과 순서를 적절히 재배치하여 효과를 보았지만, 모니터링 결과 이 것이 단순한 인덱스 사용 효율의 문..
개요 MySQL/MariaDB는 전통적으로 특정 테이블에 대한 ALTER 명령 실행시, 작업이 완료될 때까지 해당 테이블 전체에 락을 걸어 읽기, 쓰기 작업이 불가능했다. MySQL 5.6(MariaDB 10.0)부터 InnoDB 테이블에 Online DDL 기능이 추가되어 테이블 락을 최소화한 테이블 수정이 가능해졌다. 사용자는 ALTER 명령 실행시 ALGORITHM, LOCK 2개 옵션을 추가로 명시해주면 테이블 락을 최소화하여 테이블 스키마를 수정하는 작업을 수행할 수 있게 되었다. ALTER TABLE foobar ADD COLUMN is_foobar TINYINT(1) NULL DEFAULT 0 COMMENT 'foobar 여부', ALGORITHM=INSTANT; ALTER TABLE foo..
- Total
- 2,772,951
- Today
- 89
- Yesterday
- 1,287
- jQuery
- MySQL
- Docker
- java
- Eclipse
- 태그를 입력해 주세요.
- spring
- Spring Boot
- chrome
- bootstrap
- maven
- 자전거
- 로드바이크
- 구동계
- JavaScript
- Kendo UI Web Grid
- Kendo UI
- 알뜰폰
- JHipster
- Spring MVC 3
- jstl
- 평속
- jpa
- 로드 바이크
- DynamoDB
- kotlin
- node.js
- jsp
- graylog
- CentOS