1. 인덱스 생성

기본 : 기본 인덱스는 하나의 열에 대한 인덱스입니다. 데이터베이스에서 CREATE INDEX 문을 사용하여

생성할 수 있습니다.

복합 : 복합 인덱스는 두 개 이상의 열에 대한 인덱스입니다. 복합 인덱스는 여러 열에 대해 쿼리를 최적화하는 데

유용합니다.

유니크 인덱스 : 유니크 인덱스는 인덱스가 설정된 열의 값이 중복되지 않도록 보장합니다.

프라이머리 키 : 프라이머리 키는 기본적으로 유니크 인덱스입니다. 테이블의 기본 키를 정의하면 자동으로 유니크 인덱스가 생성됩니다.

 

2. 인덱스 생성 및 관리 예제

다음은 실제 데이터베이스에서 인덱스를 생성하고 관리하는 예제입니다.

-- 테이블 생성
CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    department VARCHAR(50),
    salary DECIMAL(10, 2)
);

-- 단일 열 인덱스 생성
CREATE INDEX idx_department ON employees (department);

-- 복합 인덱스 생성
CREATE INDEX idx_name_salary ON employees (name, salary);

-- 유니크 인덱스 생성
CREATE UNIQUE INDEX idx_unique_name ON employees (name);

-- 인덱스 삭제
DROP INDEX idx_department ON employees;

 

3. 요약

  • 단일 열 인덱스: 하나의 열에 대한 인덱스입니다.
  • 복합 인덱스: 두 개 이상의 열에 대한 인덱스입니다.
  • 유니크 인덱스: 열의 값이 중복되지 않도록 보장합니다.
  • 클러스터드 인덱스: 기본 키가 클러스터드 인덱스 역할을 합니다.
  • 인덱스 삭제: 필요하지 않은 인덱스는 삭제할 수 있습니다.

인덱스는 쿼리 성능을 크게 향상시킬 수 있지만, 데이터베이스의 삽입, 업데이트, 삭제 작업에 영향을 미칠 수 있으므로 신중하게 설계하고 관리해야 합니다.

'DBMS > mysql' 카테고리의 다른 글

Mysql auto_increment와 primary key 설정  (0) 2024.08.10
Mysql 백틱(``)  (0) 2024.08.10

1. 기존 칼럼 id를 AUTO_INCREMENT와 기본 키로 설정 (테이블 이름이 변경된 후)

ALTER TABLE `mytable` MODIFY `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

 

2. 기존 기본 키 칼럼 id에 AUTO_INCREMENT 추가 (테이블 이름이 변경된 후)

ALTER TABLE `mytable` MODIFY `id` INT NOT NULL AUTO_INCREMENT;

 

3. 새로운 칼럼 new_id를 추가하고 AUTO_INCREMENT와 기본 키 설정 (테이블 이름이 변경된 후)

ALTER TABLE `mytable` ADD COLUMN `new_id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

 

 

 

설명:

  • ADD COLUMN: 새로운 칼럼을 테이블에 추가합니다.
  • AUTO_INCREMENT: 새 칼럼에 자동 증가 속성을 설정합니다.
  • PRIMARY KEY: 새 칼럼을 기본 키로 설정합니다.
  • FIRST: 새 칼럼을 테이블의 첫 번째 위치로 이동시킵니다. 이 옵션은 선택적입니다.

'DBMS > mysql' 카테고리의 다른 글

Mysql Index 인덱스 생성 및 관리  (0) 2024.08.10
Mysql 백틱(``)  (0) 2024.08.10

예약어 및 특수 문자 사용 방지:

  • SQL에서 예약어나 특수 문자가 포함된 열 이름, 테이블 이름 등을 사용할 때 백틱을 사용하여 구문 오류를 방지할 수 있습니다. 예를 들어, my_table라는 이름의 테이블을 생성하려면 다음과 같이 백틱을 사용합니다.

백틱 사용 예

  1. 테이블 및 열 생성:
    • 백틱을 사용하여 테이블과 열을 정의할 때:
CREATE TABLE `my_table` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `name` VARCHAR(100)
);

 

   2. 쿼리에서 백틱 사용:

  • 데이터 조회 및 조작 시 백틱을 사용하여 테이블 및 열 이름을 감쌉니다:
  • 예약어를 테이블이나 열 이름으로 사용할 때 백틱을 사용합니다.
SELECT `id`, `name` FROM `my_table` WHERE `id` = 1;

 

다른 데이터베이스 시스템에서의 차이점

  • MySQL: 백틱을 사용하여 식별자를 감쌉니다.
  • PostgreSQL: 백틱 대신 큰따옴표(")를 사용합니다.
  • SQL Server: 대괄호([])를 사용하여 식별자를 감쌉니다.
--mysql 

CREATE TABLE `my_table` (
    `column1` INT,
    `column2` VARCHAR(50)
);

--postgresql

CREATE TABLE "my_table" (
    "column1" INT,
    "column2" VARCHAR(50)
);

-- sqlserver

CREATE TABLE [my_table] (
    [column1] INT,
    [column2] VARCHAR(50)
);

 

'DBMS > mysql' 카테고리의 다른 글

Mysql Index 인덱스 생성 및 관리  (0) 2024.08.10
Mysql auto_increment와 primary key 설정  (0) 2024.08.10

+ Recent posts