오라클 LRU알고리즘
LRU알고리즘이란 Oracle database의 메모리 관리를 효율적으로 하기 위해 고안된 대표적인 알고리즘으로 최신 데이터를 메모리에 유지시키고 오래된 데이터를 메모리에서 내보내게 하는 알고리즘
메모리에서 조회하면 1초가 걸린다. cache hit
메모리에 없어서 디스크에서 조회하면 5초가 걸린다. cache miss
cache hit를 많이 할 수 있도록 메모리를 관리하는 알고리즘? LRU알고리즘
오라클에서
select ename
from emp
where ename = 'SCOTT';이라는 입력을 넣으면
1.먼저 디스크에서 데이터를 읽는다. (cache miss, 5초 소요)
2. 조회한 데이터는 메모리에 저장되며 그 다음 정보들이 메모리에 들어오게 됨에 따라 MRU에서 LRU쪽으로 이동한다.
3.LRU에 도착하면 더이상 저장할 공간이 없어 디스크로 이동한다.
LRU알고리즘 설명링크
https://cafe.daum.net/oracleoracle/Sh6h/2023
알고리즘 작성
cities = ['Jeju','Pangyo','NewYork','NewYork']
def cacheProcess(city_list,cachesize):
cities = list(map(lambda x:x.lower(),city_list)) #요소를 소문자로 변경
cache = [None for i in range(cachesize)] # None으로 구성된 리스트 생성
time = 0
for i in range(len(cities)):
if cities[i] in cache: #메모리에 데이터가 들어있다면 1초 추가
time+=1
else: #디스크에 데이터가 들어있다면 5초 추가
time+=5
cache.append(cities[i]) #메모리 변경
del[cache[0]]
return time
cacheProcess(cities,4)
Author And Source
이 문제에 관하여(오라클 LRU알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gjtjsdn1/오라클-LRU알고리즘저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)