2014-01-21 28 views
0

我有一张表,保存我的付款记录。它有用户ID字段......所以当我查询这个领域没有指数则返回4个值是这样的...quering mysql有和没有索引返回完全不同的结果

select count(id) from `mydb`.`sale_transaction` where subscriber_guid='4d03a32c-3dca-472b-a1db-0dfb0f66e64d'; 
+-----------+ 
| count(id) | 
+-----------+ 
|   4 | 
+-----------+ 
1 row in set (0.31 sec) 

所以我想通过这个领域更快地获取数据,我说像这样的指数...

alter table sale_transaction add index subscriber_guid_index(subscriber_guid); 
Query OK, 0 rows affected (1.00 sec) 
Records: 0 Duplicates: 0 Warnings: 0 

然后再次相同的查询......

select count(id) from `mydb`.`sale_transaction` where subscriber_guid='4d03a32c-3dca-472b-a1db-0dfb0f66e64d'; 
+-----------+ 
| count(id) | 
+-----------+ 
|   0 | 
+-----------+ 
1 row in set (0.00 sec) 

如果我删除索引,它再次工作......

alter table sale_transaction drop index subscriber_guid_index; 
Query OK, 0 rows affected (0.06 sec) 
Records: 0 Duplicates: 0 Warnings: 0 

select count(id) from `mydb`.`sale_transaction` where subscriber_guid='4d03a32c-3dca-472b-a1db-0dfb0f66e64d'; 
+-----------+ 
| count(id) | 
+-----------+ 
|   4 | 
+-----------+ 
1 row in set (0.29 sec) 

以前没有见过这样的事情,我的错误是什么?

回答

1

问题,现在我可以查询基于subscriber_guid。