본문 바로가기

mariaDB15

06.스토리지 엔진 - Aria 스토리지 엔진 6.1 Aria 스토리지 엔진 MyISAM 스토리지 엔진은 초창기부터 사용이 되어 왔습니다. 하지만 트랜잭션을 지원하지 않고 테이블 수준의 잠금을 사용한다는 단점이 있어서 주로 사용하지는 않게 되었습니다. Aria 스토리지 엔진은 MyISAM의 이런 단점을 보완하기 위해서 만들어진 스토리지 엔진입니다. MariaDB에서는 내부 임시 테이블을 생성해야 할 때에는 MyISAM이 아니라 Aria 스토리지 엔진을 사용하기 때문에 Aria 스토리지 엔진의 기본적인 내용을 알고 있다면 도움이 될 것입니다. MyISAM과 차별화되는 기능은 트랜잭션과 페이지 캐시기능입니다. 6.1.1 트랜잭션 Aria 스토리지 엔진을 사용하는 테이블을 생성할 때에는 TRANSACTIONAL 옵션을 명시할 수 있습니다. TRANSACT.. 2021. 7. 22.
4.4 옵티마이저 힌트 힌트의 사용법 MariaDB에서 옵티마이저 힌트는 종류별로 그 사용 위치가 정해져 있는데, 두가지 방법이 있습니다. 이 두가지 방법모두 잘못 사용할 경우 오류를 발생시키게 됩니다. 오라클 처럼 힌트가 주석의 일부로 해석되는 것이 아니라 SQL의 일부로 해석(설령 힌트가 주석안에 표기되었다 하더라도)되기 때문입니다. 사용법1 SELECT * FROM employees USE INDEX (primary) WHERE emp_no=10001; 사용법2 SELECT * FROM employees /*! USE INDEX (primary) */ WHERE emp_no=10001; 첫번째 예제에서는 별도의 주석 표기 없이 SQL 문장의 일부로 작성하는 방식이며, 두 번째 예제는 MariaDB에서 힌트를 위한 주석 표.. 2021. 6. 14.
4.3.10 Extra컬럼(2) 앞의 글에 이어서 실행계획의 Extra컬럼에 대해서 정리하는 두번째 글입니다. Using index 데이터 파일을 전혀 읽지 않고 인덱스만 읽어서 쿼리를 모두 처리할 수 있을때 표시됩니다. MariaDB [employees]> explain -> select first_name from employees where first_name between 'Balette' and 'Gad'; +------+-------------+-----------+-------+---------------+--------------+---------+------+-------+--------------------------+ | id | select_type | table | type | possible_keys | key.. 2021. 6. 4.
4.3.10 Extra 컬럼(1) 쿼리의 실행계획에서 성능에 관련된 중요한 내용이 Extra컬럼에 자주 표시됩니다. const row not found 쿼리의 실행계획에서 const 접근 방식으로 테이블을 읽었지만 실제로 해당 테이블에 레코드가 1건도 존재하지 않으면 표시됩니다. 이런 메세지가 표시되는 경우에는 테이블에 적절히 테스트용 데이터를 저장하고 다시 한번 쿼리의 실행 계획을 확인해 보는 것이 좋습니다. Distinct MariaDB [employees]> explain -> select distinct d.dept_no from departments d,dept_emp de where de.dept_no=d.dept_no; +------+-------------+-------+-------+---------------+-----.. 2021. 6. 3.