I need help, I'm somewhat new to indexing, I am joining two tables and need to optimize the speed of the query. I'm running the NDB storage engine so the foreign key stuff is disabled. With that in mind, here's the query and additional comments below:

SELECT COUNT(*) Count FROM pnr_passengers pax INNER JOIN pnr_status status ON pax.ID = status.ID_passengers INNER JOIN pnr_seg ments ps ON status.ID_segments = ps.ID WHERE status.res_status='0' AND ps.origin='SJU' AND ps.destination='SIG' AND ps.flight_
date='2006-03-10' AND ps.flight_number='218';

Field types
   pax.ID, bigint  (keyfield, indexed)
   status.ID, bigint (keyfield, indexed)
   ps.ID, bigint (keyfield, indexed)
   status.res_status, int
   ps.origin, char(3)
   ps.destination, char(3)
   ps.flight_date, date
   ps.flight_number, int

As you can see I'm joining three tables here each having a one-to-many relationship with each other
   pnr_passengers -one to many with- pnr_status
   pnr_status -one to many with- pnr_segments

Here's an EXPLAIN with \G:

*************************** 1. row ***************************
          id: 1
 select_type: SIMPLE
       table: status
        type: ALL
possible_keys: NULL
         key: NULL
     key_len: NULL
         ref: NULL
        rows: 100
       Extra: Using where
*************************** 2. row ***************************
          id: 1
 select_type: SIMPLE
       table: pax
        type: ref
possible_keys: PRIMARY
         key: PRIMARY
     key_len: 8
         ref: W4_AirlineData.status.ID_passengers
        rows: 1
       Extra:
*************************** 3. row ***************************
          id: 1
 select_type: SIMPLE
       table: ps
        type: ref
possible_keys: PRIMARY
         key: PRIMARY
     key_len: 8
         ref: W4_AirlineData.status.ID_segments
        rows: 1
       Extra: Using where


Any help you anyone can provide as to the best way to create these index's that'd be great! This is an OFTEN used query in our software and the tables with have many rows.

Cory

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to