SW개발/SQL

[SQL] 구글 바드(Bard)에게 물어본 쿼리 튜닝

코대장 2023. 8. 18. 05:03
반응형

쿼리 튜닝 어떻게 하는거야?

구글에서 만든 생성형 AI 바드(Bard)에게 물어 보았습니다.

 

바드야, SQL 쿼리 튜닝하는 가장 쉬운 방법

SQL 쿼리 튜닝은 데이터베이스의 성능을 향상시키는 데 중요한 작업입니다. SQL 쿼리를 튜닝하는 가장 쉬운 방법은 다음과 같습니다.

  1. 필요한 데이터만 쿼리합니다. 쿼리에서 필요한 데이터만 선택하면 불필요한 데이터를 검색하는 데 필요한 시간을 줄일 수 있습니다.
  2. 인덱스를 사용합니다. 인덱스는 데이터베이스에서 특정 데이터를 빠르게 찾을 수 있도록 도와줍니다. 쿼리에서 인덱스를 사용하면 쿼리 실행 속도를 높일 수 있습니다.
  3. 조인 방법을 최적화합니다. 조인은 두 테이블의 데이터를 결합하는 데 사용됩니다. 조인 방법을 최적화하면 쿼리 실행 속도를 높일 수 있습니다.
  4. 서브쿼리를 최소화합니다. 서브쿼리는 쿼리 내부에 있는 또 다른 쿼리입니다. 서브쿼리를 최소화하면 쿼리 실행 속도를 높일 수 있습니다.
  5. 쿼리 실행 계획을 확인합니다. 쿼리 실행 계획은 쿼리가 어떻게 실행되는지 보여줍니다. 쿼리 실행 계획을 확인하면 쿼리 실행 속도를 높일 수 있는 방법을 찾을 수 있습니다.

SQL 쿼리 튜닝은 데이터베이스의 성능을 향상시키는 중요한 작업입니다. 위의 방법을 따르면 SQL 쿼리의 성능을 향상시킬 있습니다.


인덱스를 사용하는 방법을 물어 보았습니다.

 

바드야, 인덱스 사용하는 방법 

SELECT *
FROM products
WHERE name = 'Apple iPhone 13 Pro Max'
AND price <= 1000

이 쿼리는 nameprice 컬럼을 기준으로 데이터를 검색합니다.

name 컬럼은 인덱스가 생성되어 있지만 price 컬럼은 인덱스가 생성되어 있지 않습니다.

따라서 쿼리는 name 컬럼을 기준으로 데이터를 검색한 후 price 컬럼을 기준으로 데이터를 필터링합니다.

이 경우 쿼리 실행 속도가 느려질 수 있습니다.

 

이 쿼리의 성능을 향상시키기 위해서는 price 컬럼에도 인덱스를 생성해야 합니다.

인덱스를 생성하면 쿼리는 price 컬럼을 기준으로 데이터를 빠르게 찾을 수 있습니다. 따라서 쿼리 실행 속도가 향상될 수 있습니다.

인덱스를 생성하는 방법은 다음과 같습니다.

CREATE INDEX price_index ON products (price);

쿼리는 price 컬럼에 인덱스를 생성합니다. 인덱스를 생성한 쿼리를 실행하면 쿼리 실행 속도가 향상될 것입니다.


이미, 인덱스 설정 여부

바드야, 컬럼에 인덱스 생성 여부 확인하는 방법

SHOW INDEX FROM products;

이 쿼리는 products 테이블의 인덱스를 보여줍니다.

인덱스 목록에 컬럼이 포함되어 있으면 해당 컬럼에 인덱스가 생성되어 있는 것입니다.

예를 들어, products 테이블의 인덱스 목록에 name 컬럼이 포함되어 있으면 name 컬럼에 인덱스가 생성되어 있는 것입니다.

인덱스가 생성되어 있지 않은 컬럼은 인덱스를 생성하여 쿼리 실행 속도를 향상시킬 있습니다.