Field           Type         Collation          Null    Key     Default  Extra           Privileges                       Comment
--------------  -----------  -----------------  ------  ------  -------  --------------  -------------------------------  -------
id              int(11)      NULL                       PRI     (NULL)   auto_increment  select,insert,update,references         
documentType    varchar(11)  latin1_swedish_ci  YES             (NULL)                   select,insert,update,references         
recordingDate   int(10)      NULL               YES     MUL     (NULL)                   select,insert,update,references         
Grantor         varchar(26)  latin1_swedish_ci  YES             (NULL)                   select,insert,update,references         
Grantee         varchar(26)  latin1_swedish_ci  YES             (NULL)                   select,insert,update,references         
groupCount      char(1)      latin1_swedish_ci  YES             (NULL)                   select,insert,update,references         
Filler          char(1)      latin1_swedish_ci  YES             (NULL)                   select,insert,update,references         
reverseCode     char(1)      latin1_swedish_ci  YES             (NULL)                   select,insert,update,references         
sequencenumber  char(1)      latin1_swedish_ci  YES             (NULL)                   select,insert,update,references         
documentNumber  varchar(7)   latin1_swedish_ci  YES             (NULL)                   select,insert,update,references         
serialNumber    varchar(5)   latin1_swedish_ci  YES             (NULL)                   select,insert,update,references         /*Index Information For - titletrace.gi_a*/
-------------------------------------------Table   Non_unique  Key_name       Seq_in_index  Column_name    Collation  Cardinality  Sub_part  Packed  Null    Index_type  Comment
------  ----------  -------------  ------------  -------------  ---------  -----------  --------  ------  ------  ----------  -------
gi_a             0  PRIMARY                   1  id             A             50989999    (NULL)  (NULL)          BTREE              
gi_a             1  recordingDate             1  recordingDate  A                 3772    (NULL)  (NULL)  YES     BTREE              
以上为数据结构
查询语句如下
$query = "select id,documentNumber..... from  gi_a where recordingDate> and recordingDate< and Instr(Grantor,'".$grantor."')>0"查询速度超慢,如何解决?

解决方案 »

  1.   

    最后面的 Instr(Grantor,'".$grantor."')> 0 导致索引失效,mysql将遍历整个记录集进行查找,所以速度很慢select   id,documentNumber.....   from     gi_a   where   recordingDate>   and   recordingDate <  返回的数据是否很多?如果不是很多的话可以考虑先执行这句,再用程序在返回的记录集中查找Instr(Grantor,'".$grantor."')> 0的
      

  2.   

    另外,如果查询recordingDate的输入条件不是绝对任意的话(比如限制在一个月内,一个季度内等等),可以考虑按年,月,季度等对此字段进行分表