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) 

Il était utilisé pour commander par pertinence, mais il ne semble pas l'être maintenant.Quelle est l'ordre par défaut pour cette requête dans MYSQL?

Répondre

5

Sans commande, la commande "par défaut" dépendra des index utilisés dans la requête et de l'ordre dans lequel ils sont utilisés. Cela peut changer à mesure que les données/statistiques changent et que l'optimiseur choisit différents plans.

Si vous souhaitez que les données soient dans un ordre spécifique, utilisez ORDER BY. Mais je suis sûr que vous le saviez déjà :)

2

Ne pas assumer une commande, si vous en avez besoin dans un ordre, utilisez la clause ORDER BY.

+5

L'ordre de tri par défaut est comme une boîte de chocolats. – TheTXI

Questions connexes