Wie optimiert man die Suche nach Datum in Mysql?

8

Dies ist meine grundlegende Datum-Zeit-Struktur:

%Vor%

Und ich möchte das Ergebnis von day(date_time) bei '2010-10' und% user_id = '1'; erhalten Mein SQL ist:

%Vor%

aber die Anzeige EXPLAIN code:

%Vor%

Also, diese Codezeile scheint nicht sehr effektiv zu sein. Wie könnte ich die Tabelle konstruieren, um meine Suche effektiver zu machen?

Vielen Dank !!

    
qinHaiXiang 20.11.2010, 14:06
quelle

3 Antworten

12

Die Verwendung einer Funktion für eine Spalte in einer WHERE-Klausel verhindert die effiziente Verwendung eines Index für diese Spalte. Versuchen Sie es stattdessen:

%Vor%

Fügen Sie einen Index für (user_id, date) hinzu.

    
Mark Byers 20.11.2010, 14:08
quelle
2
%Vor%

effizient und akzeptiert Indexierung auch.

    
heav3n 10.11.2011 03:26
quelle
0

Wie wäre es mit:

%Vor%

Oder vielleicht

%Vor%

Wäre das zu ineffizient?

    
Edward Falk 08.02.2012 22:50
quelle

Tags und Links