이 내 기본 날짜 - 시간 구조 :MySQL에서 날짜 시간 검색을 최적화하는 방법은 무엇입니까?
primary key(datetime) key
auot_id date_time user_id
1 2010-10-01 20:32:34 1
2 2010-10-02 20:32:34 1
3 2010-11-03 20:32:34 2
4 2010-10-04 20:32:34 1
5 2010-11-05 20:32:34 1
그리고 '2010-10'
에서 day(date_time)
의 결과를 얻을 대상과 user_id = '1';
내 SQL은 다음과 같습니다
SELECT * FROM datetime WHERE user_id = 1 AND DATE_FORMAT(date,'%Y-%m') = '2010-10'
하지만 EXPLAIN
코드 표시 :
SIMPLE datetime ALL (NULL) (NULL) (NULL) (NULL) 5 Using where
그래서이 코드 줄은 보이지 않습니다. 매우 효과적으로 수행 할 수 있습니다. 검색을보다 효과적으로 만들기 위해 어떻게 테이블을 구성 할 수 있습니까?
대단히 감사합니다!
저는 mysql을 처음 사용합니다. 따라서 어떤 종류의 색인을 추가해야하는지 잘 모르겠습니다. 나는 그들에 인덱스를 만들었다 고 생각한다 : INDEX'date' ('date','user_id') – qinHaiXiang
'date'가 함수에 전달되기 때문에'user_id'는 "정적"값이므로 다른 방식으로 사용하고 싶습니다. . – Danosaure
https://dba.stackexchange.com/a/140693/39319를 참조하십시오. 자정 거래에 대한 우려가있는 경우 사용자가 모든 날짜 및 시간을 처리하는 방법을 더 잘 설명합니다. –