본문 바로가기

mysql48

06.스토리지 엔진 - Aria 스토리지 엔진 6.1 Aria 스토리지 엔진 MyISAM 스토리지 엔진은 초창기부터 사용이 되어 왔습니다. 하지만 트랜잭션을 지원하지 않고 테이블 수준의 잠금을 사용한다는 단점이 있어서 주로 사용하지는 않게 되었습니다. Aria 스토리지 엔진은 MyISAM의 이런 단점을 보완하기 위해서 만들어진 스토리지 엔진입니다. MariaDB에서는 내부 임시 테이블을 생성해야 할 때에는 MyISAM이 아니라 Aria 스토리지 엔진을 사용하기 때문에 Aria 스토리지 엔진의 기본적인 내용을 알고 있다면 도움이 될 것입니다. MyISAM과 차별화되는 기능은 트랜잭션과 페이지 캐시기능입니다. 6.1.1 트랜잭션 Aria 스토리지 엔진을 사용하는 테이블을 생성할 때에는 TRANSACTIONAL 옵션을 명시할 수 있습니다. TRANSACT.. 2021. 7. 22.
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER or SET_USER_ID privilege(s) for this operation MySQL 관련 문의사항이 들어온 내용을 정리 한 내용입니다. 내용은 이렇습니다. 유저가 함수를 생성하는데 에러가 발생한다는 것입니다. 확인한 에러는 아래와 같습니다. ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER or SET_USER_ID privilege(s) for this operation 해석해보면 유저에 SUPER나 SET_USER_ID 권한이 없어서 그렇다고 나오는 에러였습니다. 테스트 결과 SUPER 나 SET_USER_ID 둘 중에 아무권한이나 있으면 생성이 가능하지만, 근본적인 문제는 이게 아니였습니다. 함수의 소스를 확인 결과 CREATE DEFINER=`root`@`%` FUNCTION ... 형식으로.. 2021. 7. 5.
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.