CREATE TABLE phone (
phone_code INT PRIMARY KEY,
phone_name VARCHAR(100),
phone_price DECIMAL(10, 2)
);
INSERT
INTO phone (phone_code , phone_name , phone_price )
VALUES
(1, 'galaxyS23', 1200000),
(2, 'iPhone14pro', 1433000),
(3, 'galaxyZfold3', 1730000);
SELECT * FROM phone;
SELECT * FROM phone WHERE phone_name = 'galaxyS23';
EXPLAIN SELECT * FROM phone WHERE phone_name = 'galaxyS23';
-- extra를 확인하면 where 절을 활용하여 추출했다.
-- where 절에 활용한 컬럼에 index를 추가해 보자.
CREATE INDEX idx_name ON phone (phone_name);
SHOW INDEX FROM phone;
CREATE INDEX idx_name_price ON phone (phone_name, phone_price);
SHOW INDEX FROM phone;
중복값이 적은 컬럼을 앞에다가 적어야 함
-- 인덱스 추가 후 다시 해당 컬럼을 조건으로 해서 조회
EXPLAIN SELECT * FROM phone WHERE phone_name = 'iPhone14pro';
-- 인덱스는 주기적으로 다시 달아주어야 한다.
OPTIMIZE TABLE phone;
인덱스 삭제는 drop
DROP INDEX idx_name ON phone;
SHOW INDEX FROM phone;