Search
Duplicate
⌨️

νŒŒν‹°μ…”λ‹ 샀딩

β€’
νŠΈλžœμž­μ…˜ 둀백이 μ μš©λ˜μ–΄ UserServiceTest 클래슀의 testTransactionRollback() ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€κ°€ ν†΅κ³Όν•œλ‹€.
β€’
νŠΈλžœμž­μ…˜ μ„œλΉ„μŠ€μ™€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλΉ„μŠ€κ°€ λΆ„λ¦¬λ˜μ—ˆλ‹€.
β€’
νŒŒν‹°μ…”λ‹μ„ ν•  λ•Œ λ‚˜λˆ„λŠ” 방법은 μ—¬λŸ¬κ°€μ§€μ΄λ‹€.
β—¦
지역/기수/ν•΄μ‹±
β€’
λ‘˜μ˜ μ„±λŠ₯차이
β—¦
select * from fruit where fruit_name=’ap%’;
β—¦
select fruit_name from fruit where fruit_name=’ap%’;

질문 λͺ©λ‘

β€’
그러면 μ € ν…Œμ΄λΈ”μ— λŒ€ν•œ λͺ¨λ“  μ‘°νšŒλ§ˆλ‹€ νŒŒν‹°μ…˜ 기쀀이 κΌ­ λ“€μ–΄κ°€μ•Όκ² λ„€μš”? 또 νŒŒν‹°μ…˜μ΄ λ„ˆλ¬΄ λ§Žμ•„μ§ˆ κ²½μš°μ—λŠ” μ–΄λ–»κ²Œ λ˜λ‚˜μš”??
β€’
νŒŒν‹°μ…”λ‹ 기쀀에 따라 일뢀 μΏΌλ¦¬λŠ” 쑰회 μ„±λŠ₯이 였히렀 μ €ν•˜λ  μˆ˜λ„ μžˆμœΌλ €λ‚˜μš”?
β€’
μƒ€λ”©μ˜ 기쀀은 μ–΄λ–»κ²Œ μž‘λ‚˜μš”? 샀딩을 톡해 μ—¬λŸ¬ μ„œλ²„λ‘œ DBλ₯Ό λΆ„ν• ν•˜λ©΄ μ‚¬μš©μžκ°€ 샀딩 기쀀에 따라 Datasourceλ₯Ό μ •ν•΄μ€˜μ•Όν•˜λ‚˜μš”?
β€’
샀딩을 μ§„ν–‰ν•˜λ©΄ db μ„œλ²„λ₯Ό λΆ„λ¦¬ν•˜λŠ”κ±΄λ° νŠΈλžœμž­μ…˜ κ΄€λ¦¬λŠ” λ”°λ‘œ μ§„ν–‰ν•΄μ£Όμ–΄μ•Όν•˜λŠ”κ±΄κ°€μš”?
β€’
λ ˆμΈμ§€ νŒŒν‹°μ…”λ‹ != μƒ€λ”©μΈκ±΄κ°€μš”??,,
β€’
DB λŠ” κ²°κ΅­ ν•˜λ‚˜μ˜ 파일둜 κ΄€λ¦¬ν•œλ‹€.

νŽ˜μ΄μ§• 처리

β€’
offset
β—¦
μŠ€ν‚΅ν•œλ‹€ 라고 ν‘œν˜„
β—¦
limit 을 μΉ΄μš΄νŠΈν•΄μ•Ό ν•œλ‹€(λ‹€ 읽음).
β€’
cursor
β—¦
where μ ˆμ„ λ¨Όμ € 읽기 λ•Œλ¬Έμ— 데이터가 λ§Žμ•„μ‘Œμ„ λ•Œ μœ λ¦¬ν•˜λ‹€
β—¦
단점은??
μ„œλ²„ μΊμ‹œ, 검색 엔진, λ©”μ‹œμ§€ 큐

μš”κ΅¬μ‚¬ν•­ 힌트

β€’
20κ°œλŠ” cache λ₯Ό μ΄μš©ν•œλ‹€.
β€’
검색 엔진을 μ΄μš©ν•œλ‹€.
β€’
μƒν’ˆ 정보가 λ³€κ²½λ˜μ—ˆμ„ λ•Œ
β—¦
write ν•œ λ’€
β–ͺ
λ©”μ‹œμ§€ 큐
β–ͺ
μΊμ‹œμ— λ°”λ‘œ write
κ³ λ―Όν•  λΆ€λΆ„
β€’
μ„œλΉ„μŠ€ 데이터 νŠΉμ„±
β€’
μ„œλΉ„μŠ€μ—μ„œ νŠΉλ³„νžˆ κ³ λ €ν•΄μ•Ό ν•  μ€‘μš” κΈ°λŠ₯
β€’
κ°œμ„ ν•œ 인프라 μ•„ν‚€ν…μ²˜μ—μ„œ λ°œμƒν•  수 μžˆμ„ κ²ƒμœΌλ‘œ μ˜ˆμƒλ˜λŠ” 문제
β€’
λ¬Έμ œμ— λŒ€ν•œ ν•΄κ²° λ°©μ•ˆ 아이디어
β€’
규λͺ¨ ν™•μž₯μ„±(scalability)
β€’
μ„±λŠ₯(performance)