0
phpMyAdmin에 따라 다음 표를 최적화하려고합니다. 표 스캔에 관한 몇 가지 통계가 높고 색인이 없거나 사용되지 않습니다. (핸들러 읽기 RND 다음 5.7 M)MySQL에서 색인을 생성 할 열
1.
$query = "
SELECT * FROM apps_discrep
WHERE discrep_station = '$station'
AND discrep_date = '$date'
ORDER BY discrep_timestart";
2.
$query = "
SELECT * FROM apps_discrep
WHERE discrep_date BETWEEN '$keyword' AND '$keyword3'
AND (discrep_station like '$keyword2%') ORDER BY discrep_date";
그것이 인덱스 discrep_station, discrep_date 및 discrep_timestart에 올바른겠습니까? 현재 자동 증가 ID에는 기본 고유 색인 만 존재합니다.
- 테이블 구조
즉 별도의 지표로 가장 왼쪽에있는 튜플을 사용할 수 있기 때문에이 같은 BTREE 인덱스 두 쿼리를 얻을 수 있습니다처럼 내게 보이는`index` int(11) NOT NULL AUTO_INCREMENT,
discrep_station varchar(5) NOT NULL,
discrep_timestart time NOT NULL,
discrep_timestop time NOT NULL,
discrep_date date NOT NULL,
discrep_datetime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
discrep_show varchar(31) NOT NULL,
discrep_text text NOT NULL,
discrep_by varchar(11) NOT NULL,
discrep_opr varchar(11) NOT NULL,
email_traffic varchar(3) NOT NULL,
email_techs varchar(3) NOT NULL,
email_promos varchar(3) NOT NULL,
email_spots varchar(3) NOT NULL,
eas_row varchar(11) NOT NULL,
PRIMARY KEY (`index`)
ENGINE=MyISAM DEFAULT CHARSET=utf8;