-
μμ€ν μ±λ₯ κ°μ
κ³Όκ±° PHPλ‘ κ΅¬νλ μ€μκ° μΈμ κ³μ μμ€ν μμ DB μ²λ¦¬ μ±λ₯ μ΄μλ₯Ό κ²ͺμΌλ©°, μλ ν₯μμ μν μ±λ₯ κ°μ μμ μ μννμ΅λλ€.
-
μ΄λΉ μμ 건 μ΄μμ μΈμ μ λ°μ΄ν°κ° μ λ ₯λλ©° DBμ λ³λͺ© λ°μ
-
쑰건 κΈ°λ° μ‘°ν(μκ°, μ₯μΉ, μ ν)μ λν΄ μλ΅ μ§μ° λ°μ
-
λ°μ΄ν° μ€λ³΅ μ½μ μΌλ‘ μΈν μ©λ μ¦κ° λ° λΆνμ μ°μ° λ°μ
-
Batch Insert μ μ©
- λ¨κ±΄ λ°λ³΅ λμ λ€κ±΄
INSERT INTO ... VALUES (...), (...), ...)ννλ‘ μ²λ¦¬
- λ¨κ±΄ λ°λ³΅ λμ λ€κ±΄
-
νΈλμμ μ μ©
autocommitμ λΉνμ±ννκ³ μΌκ΄ 컀λ°νμ¬ I/O λΉμ© μ κ°
-
μ€λ³΅ λ°©μ§ λ‘μ§
ON DUPLICATE KEY UPDATE,INSERT IGNOREλμ
-
Connection μ¬μ¬μ©
PDOκΈ°λ° connection pool-like ꡬ쑰 ꡬμ±
-
μΈλ±μ€ μ€κ³
(device_cd, count_type, count_time)λ³΅ν© μΈλ±μ€ μμ±
-
λΆνμ μ»¬λΌ μ κ±°
SELECT *μ κ±°, νμν νλλ§ μ‘°ν
-
EXPLAIN λΆμ
- μΈλ±μ€ νλμ§ νμΈ, μ λ ¬/νν° μμ μ‘°μ
-
LIMIT κΈ°λ° νμ΄μ§λ€μ΄μ λμ
- μ 체 κ²°κ³Ό λ°ν λμ μΌλΆλ§ μλ΅
νλͺ© κ°μ μ κ°μ ν λΉκ³ Insert μ²λ¦¬λ μ΄λΉ 30건 μ΄λΉ 500건 μ΄μ νΈλμμ + μΌκ΄ μ½μ μ μ© μ‘°κ±΄ κΈ°λ° Select μλ΅ 1.5μ΄ 0.2μ΄ μΈλ±μ€ μ΅μ ν + LIMIT μ μ©
κ°λ¨ν λ‘μ§μ΄λΌλ DB ꡬ쑰μ νΈλμμ μ€κ³μ λ°λΌ μμ λ°°μ μ±λ₯ μ°¨μ΄κ° λ°μν μ μλ€λ μ μ 체κ°νμ΅λλ€. μ€μκ° λ°μ΄ν°λ₯Ό λ€λ£¨λ μμ€ν μμλ DB μ κ·Ό λ°©μμ λν κ³ λ―Όμ΄ λ¬΄μλ³΄λ€ μ€μνλ€λ κ²μ λ°°μ μ΅λλ€.
-
-
ν΅νλ κ³μ μ₯μΉ
κ΄μ λ° κ΄λ¦¬ μμ€ν -
νλ‘μ νΈλͺ : κ³μκ΄μ μμ€ν
-
κ°λ° κΈ°κ°: 202X.XX ~ 202X.XX
-
λ΄λΉ μν : λ°±μλ κ°λ°, λ°μ΄ν°λ² μ΄μ€ μ€κ³ λ° μ΅μ ν, λ°°ν¬ μλν
-
κΈ°μ μ€ν:
Spring BootΒ·PostgreSQLΒ·TimescaleDBΒ·JPAΒ·DockerΒ·GitHub Actions
-
μΆμ μ₯λΉμμ μμ§λ μΈμ λ°μ΄ν°λ₯Ό μ€μκ° μ μ₯ λ° λΆμ
-
μΆμ ꡬ·μ₯μΉΒ·μκ° κΈ°μ€ μ λμΈκ΅¬ λͺ¨λν°λ§ API μ 곡
-
κ³ μ 쿼리λ₯Ό μν DB νν°μ λ λ° νμ΄νΌν μ΄λΈ ꡬ쑰 μ€ν
-
κ΄λ¦¬μμ© μΉ νμ΄μ§ μ°λμ μν REST API μ 곡
-
Spring Boot κΈ°λ° REST API μλ² μ€κ³
-
JPA + QueryDSLλ‘ μ μ°ν λμ 쿼리 μ²λ¦¬
-
κ³μ μ ν, μ₯μΉ, μκ° κΈ°μ€ μ λ ¬Β·νν°λ§ κΈ°λ₯ μ§μ
-
PostgreSQL κΈ°λ°, TimescaleDB νμ΄νΌν μ΄λΈλ‘ μκ³μ΄ λ°μ΄ν° μ²λ¦¬
-
10μ΅ κ±΄ μ΄μμ λκ·λͺ¨ λ°μ΄ν° μ²λ¦¬ μ€ν μν
-
device_cd,count_type,count_timeκΈ°μ€ λ³΅ν© μΈλ±μ€ κ΅¬μ± -
work_mem, λ³λ ¬μ²λ¦¬ λ± μ±λ₯ μ€μ μ€ν λ° μ΅μ ν
μ€ν ꡬ쑰 νκ· μΏΌλ¦¬ μκ° νΉμ΄μ¬ν μΌλ° ν μ΄λΈ μ½ 4.8μ΄ μΈλ±μ€ μμ΄ μ 체 μ€μΊ νν°μ λ ν μ΄λΈ μ½ 1.2μ΄ device_cdκΈ°μ€ 100κ° νν°μ νμ΄νΌν μ΄λΈ (64MB) μ½ 0.5μ΄ TimescaleDB, work_memνλ μ μ©
-
λ¬Έμ : λλ λ°μ΄ν° μ λ ¬ μ μλ΅ μ§μ°
βwork_memμ‘°μ λ° νμ΄νΌν μ΄λΈλ‘ ν΄κ²° -
λ¬Έμ : μ₯μΉ ID κΈ°μ€ μ‘°ν μ±λ₯ μ ν
βdevice_cdκΈ°μ€ νν°μ λ λ° μΈλ±μ±μΌλ‘ κ°μ -
λ¬Έμ : μ₯κΈ° μ΄μ μ μΈλ±μ€ μ±λ₯ μ ν
β μλvacuumλ°analyzeμ€μ μΌλ‘ κ΄λ¦¬ ν¨μ¨ν
-
λκ·λͺ¨ μ€μκ° λ°μ΄ν°λ₯Ό μμ μ μΌλ‘ μ²λ¦¬νκΈ° μν΄ DB μ€κ³ λ¨κ³λΆν° μ±λ₯μ κ³ λ €ν κ΅¬μ‘°κ° μ€μν¨μ κ²½ννμ΅λλ€.
-
μ€νμ ν΅ν΄ νν°μ λ, νμ΄νΌν μ΄λΈ, μΈλ±μ± λ± λ€μν μ λ΅μ μ°¨μ΄λ₯Ό 체κ°νλ©°, λ°μ΄ν° μ²λ¦¬μ λν κΉμ μ΄ν΄λ₯Ό μμ μ μμμ΅λλ€.
-
- 2025.07 ~ : SSAFY
- 2022.11 ~ 2025.04 : (μ£Ό)KIOT
- 010-0000-8712
- qh613@naver.com




















