본문 바로가기
반응형

SQL186

MySQL Force Index 써야 하는 상황 / 쓰면 안되는 상황 MySQL에서 조회 시 Explain을 사용하면 아래 쿼리가 인덱스를 사용하는지 사용하지 않는지 확인이 가능한데 분명 특정 컬럼에 인덱스를 생성해 두었음에도 Explain을 이용하여 확인 시 possible_keys 에는 나타나지만 key를 보면 인덱스를 사용하지 않아 type이 all이 떨어지는 경우가 있는데 이럴 때 FORCE INDEX(인덱스명) 을 사용하면 강제로 인덱스를 사용하게 만들 수 있다 따라서 FORCE INDEX를 사용하면 강제로 인덱스를 사용하게 할 수 있기 때문에 인덱스가 있을 경우 FORCE INDEX를 사용하는게 좋을까 안좋을까 이런 생각이 들 수 있는데 결론만 놓고 보자면 꼭 필요한 상황이 아닌 이상에야 FORCE INDEX는 사용하지 않는 것이 좋다 일단 DB 자체에서 조회 .. 2021. 9. 24.
MySQL 테이블별 컬럼명 조회방법(복사 붙여넣기 가능하게) MySQL에서 테이블 조회 시 테이블 안에 있는 컬럼을 복사하고 싶은 경우가 있는데 실제 해보면 많은 SQL 툴에서 조회 시 컬럼명 복사 붙여넣기가 안된다 하지만 SHOW COLUMNS FROM 테이블명 을 사용해주면 해당 테이블 안에 있는 컬럼의 컬럼명 / 타입 / NULL 여부 / Key / Default / Extra(Auto Increment 등) 을 확인할 수 있는데 여기서 컬럼명을 복사해 붙여넣는 식으로 손으로 직접 쓰지 않고 쉽게 활용할 수 있다 2021. 9. 24.
MySQL 컬럼명 코멘트로 테이블 찾는 방법 MySQL에서 컬럼명이나 해당 컬럼의 코멘트는 아는데 어느 테이블에 그게 들어있는지 기억이 안나는 경우가 있는데 둘 중 하나만 알아도 간단하게 검색이 가능하다 먼저 INFORMATION_SCHEMA.COLUMS 테이블에서 TABLE_SCHEMA = '스키마명' 으로 스키마명을 설정하고 COLUMN_NAME = '컬럼명' 을 넣어주면 스키마 내에서 해당 컬럼명을 사용하는 모든 테이블을 조회 가능하다 다음은 컬럼명도 모르고 코멘트만 기억하고 있는 경우인데 COLUMN_COMMENT LIKE '%코멘트%' 로 쉽게 찾아줄 수 있다 마지막으로 예제에 사용한 쿼리는 아래와 같다 SELECT A.TABLE_NAME -- 테이블명 , A.COLUMN_NAME -- 컬럼명 , A.COLUMN_COMMENT -- 컬럼 .. 2021. 9. 24.
MySQL 컬럼 값으로 정렬하는 방법 MySQL에서 컬럼의 특정 값을 기준으로 정렬을 할 때에는 FIELD(컬럼명, '값') ASC/DESC 를 사용해주면 되는데 값을 넣을 때는 우선순위를 역순으로 넣어줘야 한다 FIELD(컬럼명, 'Africa', 'Asia') 이런 식으로 사용하면 Asia가 정렬 1순위 Africa가 2순위가 된다는 말이다 FIELDS는 컬럼명에 정의한 값만 정렬해주기 때문에 정의하지 않은 나머지 값들은 ORDER BY 에서 추가로 정렬을 해주면 된다 예제에 사용한 쿼리는 아래와 같다 SELECT CONTINENT FROM COUNTRY GROUP BY CONTINENT ORDER BY FIELD(CONTINENT, 'Africa', 'Asia') DESC 2021. 7. 5.
MySQL 줄바꾸기(개행) 방법 MySQL에서 SELECT 쿼리 사용 시 조회되는 값 중간에 개행을 시켜주고 싶다면 \n 을 추가해주면 되는데 concat을 사용해 넣어줘도 되고 아니면 문자열 안에 넣어도 줄바꾸기가 가능하다 예제에 사용한 쿼리는 아래와 같다 SELECT CONCAT('TEST1 : ', 'VALUE1', '\n', 'TEST2 : ', 'VALUE2') AS TEST1 , 'AA\nBB' AS TEST2 2021. 7. 1.
MySQL 조회 시 NULL 값 기준으로 정렬방법 MySQL에서 NULL 값이 먼저 / 나중에 나오게 정렬하려는 경우에는 ORDER BY 컬럼명 IS NULL ASC / DESC를 사용해주면 되는데 ORDER BY 컬럼명 IS NULL ASC 시에는 해당 컬럼명 기준으로 NULL이 아닌 값이 우선 조회되고 ORDER BY 컬럼명 IS NULL DESC 시에는 NULL인 값이 우선적으로 조회되게 된다 2021. 5. 21.

반응형