SELECT 
    COUNT(DISTINCT tblA.person) AS personNum  -- VARCHAR(25)
FROM
    tableA tblA
    INNER JOIN tableB tblB USING (recType, year, num)   
WHERE tblB.req_id = '';说明:recType, year, num是tableA主键中的3个,还有个seqeunceID。这个表大概有450万条数据。
执行的时候,用到了由recType, year, num所组成的索引。
       对于tableB,主键是req_id,用到了主键的索引。这个表大概会有3000条数据上面这个语句花费如下
——# Query_time: 39  Lock_time: 0  Rows_sent: 1552  Rows_examined: 7927请问这个语句应该优化!
这个问题困扰我好几天了
请大家多多帮忙

解决方案 »

  1.   

    不会吧。你好像在MYSQL 邮件列表里面问过了 ?
      

  2.   

    回楼上
    应该没有吧
    我在ChinaUnix问过,没有人回复
    [MYSQL   邮件列表]我从来没有用过
      

  3.   

    上面的那个语句的explain的结果如下id   select_type    table    type     possible_keys        key                 key_len    ref             rows    Extra
    1    SIMPLE         tblB     ref      PRIMARY              PRIMARY             150        const           3621    Using where
    1    SIMPLE         tblA     ref      PRIMARY,             ind_req_type_year    26        tblB.recType,   1
                                          ind_req_type_yea                                    tbleB.year,                                                                                                                                                       
                                                                                              tbleB.num