๐Ÿ˜€
Hyune's Wiki
  • Welcome
  • Article
    • Link
  • Mentor & Code Reviewer
    • ์ง„ํ–‰ํ•˜๊ธฐ์— ์•ž์„œ..
    • Code Review History
      • ํ•œ๋ฐฉ ์ฟผ๋ฆฌ vs ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์กฐ๋ฆฝ
      • DB์—์„œ TIMESTAMP์™€ DATETIME ํƒ€์ž…์˜ ์ฐจ์ด
      • Service๋Š” ์–ด๋–ค dto๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ• ๊นŒ?
        • ํ™•์žฅ ์งˆ๋ฌธ
  • Legacy
    • ์‹ค๋ฌด ๊ฒฝํ—˜ & ํŒ
      • Kotlin
        • ํŒŒ์ผ ์กฐ์ž‘ํ•˜๊ธฐ
      • Infra
        • Lightsail
          • ์ธ์Šคํ„ด์Šค ๊ตฌ์„ฑ ์˜ˆ์ œ
        • ๊ณต์ธ ip ํ™•์ธํ•˜๊ธฐ
      • Database
        • INSERT INTO SELECT SHARED LOCK(row LOCK)
      • API Document
        • OpenAPI (Swagger 3.0)
          • ์ •์  ๋ฌธ์„œ ๋‚ด๋ณด๋‚ด๊ธฐ
      • Side Project
        • Codesquad
      • ETC
        • HTTP Request ์ถ”์ ํ•˜๊ธฐ with HAR File
    • Study
      • Language
        • Java
          • Copy
          • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
          • Garbage Collection
          • ์ž๋ฃŒ๊ตฌ์กฐ
          • Java 17
        • Kotlin
          • Coroutine
      • Framework & Library
        • Spring
          • Spring Security
          • @Component vs @Configuration
        • JPA
          • show-sql ์„ค์ •์˜ ๋‹จ์ 
          • @GeneratedValue strategy
          • Entity์˜ field type
        • Logback
          • ๊ธฐ๋ณธ ์„ค์ •
        • Monitoring
          • VisualVM
            • ์„ค์น˜
            • ๋ฌธ์ž์—ด ์ƒ์„ฑ์œผ๋กœ ํ…Œ์ŠคํŠธ
          • nGrinder
      • Database
        • MySQL
          • SQL ๋ฌธ ์ˆ˜ํ–‰ ์ ˆ์ฐจ
          • ํŠธ๋žœ์žญ์…˜๊ณผ ์ž ๊ธˆ
          • ์ธ๋ฑ์Šค
      • Infra
        • AWS
          • S3
            • ์šฉ์–ด
            • Amazon SDK 1.x with Spring
          • DynamoDB
            • Get vs Query vs Scan
        • Docker & Kubernetes
      • Computer Science
        • OS
          • Process vs Thread
          • Process
        • Web
          • HTTP
            • HTTP vs HTTPS
            • HTTP ๊ตฌ์„ฑ
            • HTTP ๊ทธ์™ธ
          • REST API
            • GET ๋ฉ”์„œ๋“œ์— payload๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋˜๋Š”๊ฐ€?
            • ํŠน์ • ๋ชฉ์ ์˜ API๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ• ๊นŒ?
          • TCP / UDP
          • ์ธํ„ฐ๋„ท์˜ ์ž‘๋™ ์›๋ฆฌ
          • OAuth 2.0
        • Design Pattern
          • Builder Pattern
        • MSA
        • DDD
      • Test
        • Test Doule
      • Book & Online Class
        • ํ•œ ๋ฒˆ์— ๋๋‚ด๋Š” Spring ์™„.์ „.ํŒ ์ดˆ๊ฒฉ์ฐจ ํŒจํ‚ค์ง€ Online
          • AOP, Aspect Oriented Programming
          • Data Binding
          • IoC(Inversion of Control), DI(Dependency Injection)
          • Null Safety
          • Spring Resource
          • Spring Boot ๋ฒ„์ „๋ณ„ ๋ณ€ํ™”
          • SpEL, Spring Expression Language
          • Validation
        • ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” 3ํŒ
          • 2์žฅ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด
            • ์•„์ดํ…œ 1. ์ƒ์„ฑ์ž ๋Œ€์‹  ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ๊ณ ๋ คํ•˜๋ผ
            • ์•„์ดํ…œ 2. ์ƒ์„ฑ์ž์— ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋งŽ๋‹ค๋ฉด ๋นŒ๋”๋ฅผ ๊ณ ๋ คํ•˜๋ผ
            • ์•„์ดํ…œ 3. private ์ƒ์„ฑ์ž๋‚˜ ์—ด๊ฑฐ ํƒ€์ž…์œผ๋กœ ์‹ฑ๊ธ€ํ„ด์ž„์„ ๋ณด์ฆํ•˜๋ผ
            • ์•„์ดํ…œ 4. ์ธ์Šคํ„ด์Šคํ™”๋ฅผ ๋ง‰์œผ๋ ค๊ฑฐ๋“  private ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
            • ์•„์ดํ…œ 5. ์ž์›์„ ์ง์ ‘ ๋ช…์‹œํ•˜์ง€ ๋ง๊ณ  ์˜์กด ๊ฐ์ฒด ์ฃผ์ž…์„ ์‚ฌ์šฉํ•˜๋ผ
            • ์•„์ดํ…œ 7. ๋‹ค ์“ด ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ํ•ด์ œํ•˜๋ผ
          • 3์žฅ ๋ชจ๋“  ๊ฐ์ฒด์˜ ๊ณตํ†ต ๋ฉ”์„œ๋“œ
            • ์•„์ดํ…œ 11. equals๋ฅผ ์žฌ์ •์˜ํ•˜๋ ค๊ฑฐ๋“  hashCode๋„ ์žฌ์ •์˜ํ•˜๋ผ
            • ์•„์ดํ…œ 12. toString์„ ํ•ญ์ƒ ์žฌ์ •์˜ํ•˜๋ผ
            • ์•„์ดํ…œ 14. Comparable์„ ๊ตฌํ˜„ํ• ์ง€ ๊ณ ๋ คํ•˜๋ผ
          • 4์žฅ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค
      • Webinar
        • ์š”์ฆ˜ ํž™ํ•œ ์Šคํƒ€ํŠธ์—…์˜ DBDB DEEPํ•œ ์ด์•ผ๊ธฐ
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Legacy
  2. Study
  3. Infra
  4. AWS
  5. DynamoDB

Get vs Query vs Scan

PreviousDynamoDBNextDocker & Kubernetes

Last updated 3 years ago

Was this helpful?

Get

  • ๋‹จ์ผ ์กฐํšŒ

Query

  • ์ถ”์ฒœํ•˜๋Š” ์‚ฌ์šฉ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

  • ํŠน์ • ํŒŒํ‹ฐ์…˜ ํ‚ค๊ฐ€ (์ธ๋ฑ์Šค) ์žˆ๋Š” ํ•ญ๋ชฉ์„ ์กฐํšŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    • ์ฆ‰ ํ•œ์ •์ ์ธ ์กฐ๊ฑด๋งŒ ์„ค์ • ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • query ํ›„ ํ‚ค๋ฅผ ์ •๋ ฌํ•˜๊ณ  ๋ฐ์ดํ„ฐ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ๋งŒ ๊ฐ€์ ธ์˜ค๋„๋ก ์กฐ๊ฑด์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • subquery ๊ฐ™์€ ๊ฐœ๋…์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Scan

  • ๊ฐ€์žฅ ํ’๋ถ€ํ•œ ์กฐ๊ฑด ์„ค์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    • ํ•˜์ง€๋งŒ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๋กœ๋“œ๋˜๊ธฐ์— ๋ฆฌ์†Œ์Šค ๋ถ€๋‹ด์ด ํฝ๋‹ˆ๋‹ค.

    • DynamoDB๋Š” ๋ฐ์ดํ„ฐ ๋กœ๋“œ๋Ÿ‰์— ๋”ฐ๋ผ ๋น„์šฉ์ด ์ฒญ๊ตฌ๋ฉ๋‹ˆ๋‹ค.

    • ๋”ฐ๋ผ์„œ ์ถฉ๋ถ„ํžˆ ์ž‘์€ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ์ •๋ฐ€ํ•œ ์กฐ๊ฑด ๋“ฑ ์„ ๋ณ„์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์…‹์งธ, ์Šค์บ”์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์›Œํฌ๋กœ๋“œ๋Š” ์ˆœ์‹๊ฐ„์— ์—„์ฒญ๋‚œ ๋น„์šฉ์ด ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” read capacity unit ์ด ์‹ค์ œ๋กœ ์ฝ์€ ๋ฐ”์ดํŠธ ์ˆ˜๋ฅผ ๊ณ ๋ คํ•˜๊ธฐ ๋•Œ๋ฌธ

Query ์‹ฌํ™”

  • rdb์—์„œ ํ†ต์šฉ๋˜๋Š” like ๊ฒ€์ƒ‰์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • ํ•˜์ง€๋งŒ between ์ ˆ์ด๋‚˜ % ๊ฐ€ ๋’ค์— ๋ถ™๋Š” ํ˜•ํƒœ๋Š” begins_with ์ ˆ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

๊ณตํ†ต

  • query์™€ scan์€ ์ตœ๋Œ€ 1๋ฉ”๊ฐ€๊นŒ์ง€๋งŒ ์กฐํšŒ๋ฉ๋‹ˆ๋‹ค.

์Šค์บ”ํ•œ ํ•ญ๋ชฉ์˜ ์ด ๊ฐœ์ˆ˜๊ฐ€ ์ตœ๋Œ€ ๋ฐ์ดํ„ฐ ์„ธํŠธ ํฌ๊ธฐ ์ œํ•œ์ธ 1MB๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ์Šค์บ”์ด ์ค‘์ง€๋˜๊ณ  ๊ฒฐ๊ณผ๋Š” LastEvaluatedKey ํ›„์† ์ž‘์—…์—์„œ ์Šค์บ”์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์—๋Š” ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ํ•ญ๋ชฉ ์ˆ˜๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํ•„ํ„ฐ ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜๋Š” ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ „์ฒด ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์€ scan ์กฐํšŒ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ์— ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ํŽ˜์ด์ง€๋„ค์ด์…˜

    • LastEvaluatedKey๋ฅผ ํ†ตํ•ด ์ปค์„œ ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

DynamoDB ์žฅ๋‹จ์ ๊ณผ DynamoDB๋ฅผ ์‹œ์ž‘ ์ „์— ์•Œ๋ฉด ์ข‹์€ 11๊ฐ€์ง€TheWing
DynamoDB์—์„œ ์ฟผ๋ฆฌ ์ž‘์—… - Amazon DynamoDBAmazon DynamoDB
Logo
How to get item count from DynamoDB?Stack Overflow
ํ…Œ์ด๋ธ” ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€ ๋งค๊น€ - Amazon DynamoDBAmazon DynamoDB
Logo
Logo
Logo