728x90

2024/10/22 2

16) Count(*) vs Count(column)

다른 column들은 14108을 반환했는데 fd1 같은 경우에는 default 가 null이어서 그중에 null이 아닌녀석을 반환해서 숫자가 줄어든 것이다.returns a count of the number of non-NULL values of expr in the rows retrieved by a SELECT statement인자로 null을 주면 select count(NULL) = 0 이 된다. where 조건 가진 CountCovering IndexNon Covering Index where 조건 없는 Countha_records() 스토리지 API 사용ha_index_next() 스토리지 API 사용 fd1, fd2 둘다 row 갯수는 같다. Not NULL에 상관없이 두 컬럼 모두 다 ..

15) 풀스캔 쿼리 패턴 및 튜닝

Mysql 에 index가 있음에도 불구하고 테이블 풀스캔으로 처리되는 대표적인 경우들 1. 컬럼이 가공되는 경우해당 컬럼이 인덱스에 존재하더라도 쿼리에서 인덱스를 활용하지 못한다.형변환의 예시의 경우 mysql에서는 묵시적으로 문자열 타입 컬럼에 대해 숫자 타입으로 형변환을 수행한다.함수 떄문에 인덱스를 못하는 경우 풀어서 where절에 넣어주면 동일한 요건이지만 인덱스를 사용하게 된다. 2. 인덱싱 되지 않은 컬럼을 조건절에 OR연산과 함께 사용하는 경우joined_at column이 인덱싱에 포함되지 않은 컬럼이었을때 OR연산을 수행시에 account_type이 인덱싱이 되어있더라도 쿼리 실행계획은 인덱스를 타지 못하게 된다.이후 인덱스에 joined_at column도 추가하면 정상적으로 두 co..

728x90