Hi,
I got a strange thing.
I execute a query with JDBC thin mode.
But the performance and explain is very strange.
The SQL is :
SELECT FID,FNUMBER FROM "customerCache".CustomerIgniteInfo WHERE
FUSEDSTATUS = 3
and explain is:
SELECT
__Z0.FID AS __C0_0,
__Z0.FNUMBER AS __C0_1
FROM "customerCache".CUSTOMERIGNITEINFO __Z0
/* "customerCache".CUSTOMERIGNITEINFO.__SCAN_ */
WHERE __Z0.FUSEDSTATUS = 3
The entity like this(I have deleted the other fields):
@Entity
@Table(name="t_customer")
public class CustomerIgniteInfo implements Serializable {
private static final long serialVersionUID = -8065741098718964203L;
@QuerySqlField(index = true, orderedGroups={@QuerySqlField.Group(
name = "IX_T_BD_StatusFid", order = 1)})
private String FID;
@QuerySqlField( orderedGroups={@QuerySqlField.Group(
name = "IX_T_BD_StatusFid", order = 2)})
private String FNUMBER;
@QuerySqlField(orderedGroups={@QuerySqlField.Group(
name = "IX_T_BD_CUSTOMER", order = 1),@QuerySqlField.Group(
name = "IX_T_BD_StatusFid", order = 0)})
private Integer FUSEDSTATUS;
/**********Getters and Setters******************/
@Id
@GeneratedValue(generator = "personGenerator")
@GenericGenerator(name = "personGenerator", strategy = "assigned")
@Column(name = "FID")
public String getFID() {
return FID;
}
public void setFID(String id) {
this.FID = id;
}
@Column(name = "FNUMBER")
public String getFNUMBER() {
return FNUMBER;
}
public void setFNUMBER(String fNUMBER) {
FNUMBER = fNUMBER;
}
@Column(name = "FUSEDSTATUS")
public Integer getFUSEDSTATUS() {
return FUSEDSTATUS;
}
public void setFUSEDSTATUS(Integer fUSEDSTATUS) {
FUSEDSTATUS = fUSEDSTATUS;
}
}
My ignite version is 2.3.
Should this be a full table scan? It took more time.
1. I want to know why this happened.
2. How can I create a correct index?
Thanks.
Lucky