2009-06-03 8 views
1
mysql> explain SELECT p.id ID, p.job_desc_title Title, p.url URL, substr(p.posting_date, 1, 10) Date, 
    ->           p.job_city_name City, 
    ->           p.job_state_name State, 
    ->           b.screen_name Name, b.type Type,f.name Company,IF(g.account_id IS NULL,0,1) Online 
    ->           FROM postings p 
    ->       LEFT JOIN accounts b on p.account_id=b.id 
    ->       LEFT JOIN companies f on f.id=p.job_cmp_id 
    ->       LEFT JOIN online g ON g.account_id=p.account_id 
    ->       WHERE (MATCH(job_desc,job_desc_title,k_state,k_city,zip) AGAINST('+java' IN BOOLEAN MODE)) AND b.closed=0 AND NOT p.expired 
    ->       
    ->       LIMIT 0 , 5 
    -> ; 
+----+-------------+-------+----------+--------------------------------------------------+--------------------------------------+---------+-----------------+------+-------------+ 
| id | select_type | table | type  | possible_keys         | key         | key_len | ref    | rows | Extra  | 
+----+-------------+-------+----------+--------------------------------------------------+--------------------------------------+---------+-----------------+------+-------------+ 
| 1 | SIMPLE  | p  | fulltext | FK_listings,f_postings_city_state_desc_title_zip | f_postings_city_state_desc_title_zip | 0  |     | 1 | Using where | 
| 1 | SIMPLE  | f  | eq_ref | PRIMARY           | PRIMARY        | 4  | v3.p.job_cmp_id | 1 |    | 
| 1 | SIMPLE  | g  | eq_ref | account_id          | account_id       | 4  | v3.p.account_id | 1 | Using index | 
| 1 | SIMPLE  | b  | eq_ref | PRIMARY           | PRIMARY        | 4  | v3.p.account_id | 1 | Using where | 
+----+-------------+-------+----------+--------------------------------------------------+--------------------------------------+---------+-----------------+------+-------------+ 
4 rows in set (0.00 sec) 

Früher war es nach Relevanz geordnet, scheint aber nicht jetzt.Wie lautet die Standardreihenfolge für diese Abfrage in MYSQL?

Antwort

5

Ohne eine Reihenfolge von, die "Standard" Reihenfolge hängt davon ab, welche Indizes in der Abfrage verwendet werden und in welcher Reihenfolge sie verwendet werden. Dies könnte sich ändern, wenn sich die Daten/Statistiken ändern und der Optimierer andere Pläne auswählt.

Wenn Sie die Daten in einer bestimmten Reihenfolge möchten, verwenden Sie ORDER BY. Aber ich bin sicher, dass Sie bereits wussten, dass :)

2

Dont eine Bestellung annehmen, wenn Sie es in einer Bestellung benötigen, verwenden Sie die ORDER BY-Klausel.

+5

Standard-Sortierreihenfolge ist wie eine Schachtel Pralinen. – TheTXI

Verwandte Themen