INDEX

혜쿰·2023년 7월 24일
2
  • index(색인) : 검색속도를 향상시키기 위해 특정 칼럼에 색인을 부여 / pk 칼럼은 자동으로 색인이 부여됨
  • index를 사용하는 이유 : 레코드 수가 많은 경우, where 조건이 빈번한 경우, join이 자주 등장하는 경우, null이 많이 포함된 경우
  • index를 자제해야하는 경우 : 입력, 수정, 삭제 등의 작업이 자주 발생하는 경우

CREATE TABLE aa(bun INT PRIMARY KEY, irum VARCHAR(10), juso VARCHAR(10));
INSERT INTO aa VALUES (3,'tom3','seoul3');
INSERT INTO aa VALUES (1,'tom1','seoul1');
INSERT INTO aa VALUES (2,'tom2','seoul3');
SELECT FROM aa;
SHOW INDEX FROM aa; -- index_type은 BTREE
ALTER TABLE aa ADD INDEX ind_juso (juso); -- 주소에 index 추가
SHOW INDEX FROM aa;
DESC aa;
EXPLAIN SELECT
from aa;
EXPLAIN SELECT * FROM aa WHERE juso = 'seoul2';
DROP INDEX ind_juso ON aa; - 인덱스 삭제
SHOW INDEX FROM aa;

  • 참고 : now(), sydate()의 차이
  • NOW()와 SYSDATE()의 차이는 쿼리가 길어질 경우, 출력 되는 시간이 고정되느냐 변하느냐에 따른 차이가 있다. NOW 는 쿼리가 처음 시작되는 시간이 고정되지만 SYSDATE 는 연산할 때 마다 시간이 변합니다. 긴 쿼리( 쿼리 단위 )가 실행 될 때를 기준으로 날짜와 시간을 맞추고 싶다면 NOW를 사용하고, 중간중간 날짜를 조회할 때를 기준으로 각각 날짜와 시간을 사용하고 싶다면 SYSDATE를 사용합니다. 즉, SYSDATE() 함수함수가 실행되는 시점의 시각을 반환하지만, NOW()하나의 쿼리 단위로 동일한 값을 반환합니다.
  • 출처 : https://victorydntmd.tistory.com/143

SELECT NOW(), sleep(2), NOW();
SELECT sysdate(), sleep(2), SYSDATE();

0개의 댓글