본문 바로가기

스터디/Real MariaDB9

06.스토리지 엔진 - InnoDB 스토리지 엔진 6.3.1 MySQL 5.6 InnoDB XtraDB는 기본적으로 MySQL의 InnoDB 스토리지 엔진의 모든 기능을 그대로 유지하면서 추가저긍로 성능이나 확장성이 개선된 스토리지 엔진입니다. 그래서 XtraDB 스토리지 엔진을 이해하기 위해서는 MySQL에 내장된 InnoDB 스토리지 엔진의 기능들을 알고 있어야 합니다. 6.3.1.1 영구적인 통계정보 MySQL 5.6의 InnoDB에서는 이전버전과는 달리 각 테이블의 통계 정보를 테이블로 관리하도록 보완되었습니다. MySQL 5.5버전까지의 InnoDB에서는 통계 정보를 단순히 각 스토리지 엔진에서 단순히 메모리상에서 관리했었는데, 이는 매우 자주 변경되고 마스터와 슬레이브에서 각각 다른 쿼리 실행 계획을 만들어 낼 정도로 변덕이 심했습니다. 그래.. 2021. 7. 23.
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.