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)

以前は関連性順でしたが、現在はそうではないようです。

4

2 に答える 2

5

order by がない場合、「デフォルト」の順序付けは、クエリで使用されるインデックスと、それらが使用される順序によって異なります。これは、データ/統計が変化し、オプティマイザーが異なる計画を選択するにつれて変化する可能性があります。

データを特定の順序で並べたい場合は、ORDER BY を使用します。しかし、私はあなたがすでにそれを知っていたと確信しています:)

于 2009-06-03T17:30:45.010 に答える
2

順序を想定しないでください。順序で必要な場合は、ORDER BY 句を使用してください。

于 2009-06-03T17:33:23.913 に答える