반응형 DB3 [mysql/DB] 옵티마이저 옵티마이저, 힌트는 저번에 한 번 다뤄본적이 있다. 기본 데이터를 비교해 최적의 실행 계획을 수립하는 작업이 필요한데 이 기능을 옵티마이저가 담당한다. 옵티마이저는 DB 서버에서 두뇌와 같은데, 현재 DBMS 는 비용 기반 최적화를 사용하고 과거에는 규칙 기반 최적화 방법을 사용했다 데이터 읽기결과물은 동일하더라고 RDBMS 별로 그 결과를 만들어 내는 과정은 다 다르다.일반적으로 테이블의 전체 크기는 인덱스 보다 훨씬 크기 때문에 테이블을 처음부터 읽는 작업은 상당히 많은 디스크 읽기가 필요하다.그래서 대부분 DBMS는 풀 테이블 스캔을 실행할 때 여러개의 블록이나 페이지를 읽어오는 기능을 내장하고 있다. 즉 하나씩 읽어오는 것이 아니다. (InnoDB 에서는 틀린말) InnoDB 엔진은 특정 테이블의.. 2024. 7. 29. [mysql/DB] 트랜잭션 언두로그?, 리두로그?, 버퍼?, 어댑티브 해시 인덱스? 언두 영역은 insert, update ,delete 같은 문장으로 데이터를 변경했을 때 변경되기 전의 데이터 를 보관하는 곳이다.벽계수 → 수지 로 업데이트 쿼리를 날릴때때 사용자가 커밋하면 현재 상태가 그대로 유지되고, 롤백하면 언두 영역의 백업 된 데이터를 다시 데이터 파일로 저장한다.⇒ 언두 테이블스페이스(저장되는 공간) 언두 로그트랜잭션 롤백 대비용트랜잭션의 격리 수준을 유지하면서 높은 동시성 제공 트랜잭션이 완료되었다고 해당 트랜잭션이 생성한 언두 로그를 즉시 삭제 할 수 있는것은 아니다.A→B→C 순으로 트랜잭션이 시작됐지만 B,C는 완료되었고 A는 아직 종료되지 않았을때 삭제되지 않는다.InnoDB 스토리지 엔진은 언두 로그의 이력을 필요한 만큼 스캔해야만 필요한 레코드를 찾을 수 있기 때.. 2024. 6. 18. (MySQL/DB) 함수 타 언어의 함수랑 그냥 똑같다. 특정 작업을 수행하고 값을반환 하는 저장 프로시저다. 일반적으로 db에서 미리 정의된 작업을 수행하거나, 사용자가 필요한 작업을 수행할때 사용된다. 프로시저와 매우 유사하지만, 값을 반환하고, 외부에서 호출할 때 사용된다. CREATE function 이름 (매개변수) RETUNRS '타입' begin return '결과값' end 과목명을 주면, 해당 과목의 수강 학생수를 반환하는 함수 만들기. 1. Query 작성 2 입력 파라미터 설정, 리턴타입 정의 3 Begin ~ End 사이 Query 1. query selelct count(*) from Enroll where subject = (select id from subject where name = "역사"); ".. 2023. 3. 3. 이전 1 다음 반응형