전에 카디널리티 추정관련 뻘글에 누가 고맙게도
아시아쪽 글로벌한 대학교 학부생들이 발표한
카디널리티 추정 알고리즘별 정확도 벤치마킹 논문을
댓글에 올려줬더라고
해당 논문에는
- 카디널리티 추정 알고리즘의 현재의 문제점
- 기존의 카디널리티 추정 알고리즘이 실제 운영환경에서
성능좋은 쿼리플랜을 생성하는지 평가할 수 있는 정확한
방법이 없었으며 이에 대한 견해
- 자신들이 만들어낸
(Q-Error)메트릭을 활용하여 카디널리티 추정 알고리즘의"정확도"와 성능에 대해 평가할수 있음을 설명
- 카디널리티 추정 알고리즘별 설명과 벤치마크 지표
등이 포함되어있더라고
아직 앞부분밖에 읽어보지 못했지만
내가 알고싶었던 카디널리티 추정 알고리즘에
대한 내용을 알 수 있을것으로 기대하고 있고
정확한 카디널리티 추정이 쿼리플랜 품질과
동일하지 않음을 간접적으로 알고있었는데
이를 확실히 할 수 있을것 같네
읽은 부분만 요약하자면
1. 현재까지 RDBMS의 카디널리티 추정 메소드는 크게 두 종류로 분류 된다.
-쿼리를 카디널리티에 매핑하는 방식? (Query Driven Cardinality Estimation) 처음들어봄
-속성의 분포를 직접 모델링(히스토그램, 샘플링)하는 방식 (Data Driven Cadinality Estimation)
(내가 유일하게 알고 있던 방식)
2. 카디널리티 추정 메소드는 끊임없는 발전에도
불구하고 아직까지도 근본적인 문제는 해결하지 못하였음.
- 히스토그램을 사용하는 방식은 실제 비즈니스에 따른 데이터 분포를 표현하지 못할 수 있음
- 카디널리티 추정 메소드가 다중 테이블을 조인하는 쿼리에 대해 단일 테이블 쿼리보다 정확도가 떨어짐
(이것들은 실감한 문제이고 카디널리티 추정 알고리즘을 자세히 아는게 이러한 문제들응 해결하는데 도움을 얻을 수 있을것으로 보임)
3. 이 논문는 카디널리티 추정 정확도를 높게 뽑는
알고리즘을 알아내기 위한 벤치마크 논문이지 실제 DBMS에서 유용한
방식이 무엇인지를 알아내기 위한 논문가 아님
- 카디널리티 추정의 정확도과 쿼리 플랜의 품질과 직접적으로 동일하지 않음
- 실제 쿼리 실행시간은 쿼리플랜의 품질과 카디널리티 추정 "뿐만 아니라" 다른 여러 요인의 영향을 받음
4. 이러한 두가지 문제를 해결하기 위해 DBMS커뮤니티는
실제 운영환경과 유사한 벤치마크 데이터세트, 워크로드가 필요하고
카디널리티 추정 메소드의 성능을 분석하기 위한 심층적인 평가가 필요하다고
얘기함
마지막으로 해당 논문의 목적은
자신들이 만든 (Q-Error)메트릭이 카디널리티
추정 알고리즘의 정확도와 성능을 평가하는데에
있어서 탁월하다고 설명하기 위한게 목적인것 같네.
RDBMS 카디널리티 추정 알고리즘별 정확도와
성능 벤치마킹 논문
RDBMS 카디널리티 추정에 대한
요약 설명과 뻘소리가 담긴 내글
- dc official App
다음에는 다읽고 알고리즘별로 요약해서 가져와볼게 - dc App
nosql로 튀자
애초에 RDBMS에서도 설계가 아주 even하게 잘되면 카디널리티 추정을 대략까지만 알아도 되지 않을까 싶은데 이건 개인적인 호기심 요즘엔 nosql도 dba가 어느정도 섭렵해야 하는것 같던데 따로 준비해보려고 - dc App
그리고 설계가 문제가있어도 로직단에서 사후처리나 예방이 안되는것도 아니긴해서 이렇게까지 알필요는 거의 없을듯 - dc App
재밋게 읽고잇읍니당 - dc App
가끔은 쉬운예제로 dba가 좆같은 똥쿼리 수정하는것도 보여줘 - dc App
주딱 추천도서에 안티패턴이라는 책이 그런걸 다루는 내용일것 같은데 당장 쿼리 구문이 문제?됐었던 내용 두세개 생각나는데 나중에 한번 정리해봄 - dc App
잘읽었습니다 역시 디비햄이야
사실 목차설명과 감상문에 가까운 글일뿐인데 감사합니다 - dc App
저런건 통계학과,수학과 출신들 뽑는건가 - dc App
새 분야에 대해 공부할 땐 survey류 학술지 찾아보는게 좋더라. 서베이 논문이 딱 해당 분야에서 연구 중인 기반 지식들+ 연구 트렌드들 잘 요약해놓거든 cardinality estimation survey, cardinality assumption survey 로 찾아보니까 몇개 더 나오긴하네
형 근데 디비 그 자체가 목표인거 아니면 더 올라가고 싶어서 그런거야?
내가 인간 DB가 될게 - dc App
요거는 그냥 내가 튜닝파트 관련해서 예상행수까지 거의 정확하게 계산할 수 있고 싶어서 공부하는거고 또 요즘관심 있는건 클러스터링이나 Olaways On TIG정도 있네 단일 인스턴스에 대한건 어느정도 통달한 느낌이야 - dc App
형 그러면 디비 그래도 기본+a 친다 정도 되려면 무슨 책 보는게 좋음? 여기서 많이 언급되는 sql책? 그거 보면됨? DB 의 전체적은 컨셉을 잡는데 도움이 되는 책이 뭔지 궁금함
아 realmysql ㅇㅇ