日期:2014-05-16  浏览次数:20761 次

一样简单的查询,不一样的速度!
SELECT   `B_id`
FROM   `zhh_bizinfo`
WHERE   `B_buytype`   =   1   limit   0,30;

10   rows   用时39.88秒

SELECT   `B_id`
FROM   `zhh_bizinfo`
WHERE   `B_buytype`   =   2     limit   0,30;

30   rows   用时0.03秒

表zhh_bizinfo共有100万条记录,其中B_buytype=1的只有10条,其它的B_buytype=2。两个查询速度怎么相关这么大呢?B_buytype类型为enum型。如何解决这个问题呢?

------解决方案--------------------
你在B_buytype没有索引吧?


------解决方案--------------------
应该是吧。。。同意楼上。。。
------解决方案--------------------
这个时间是sql查询用的时间,意思说你查了那摸多数据消耗了那么多时间,无论如何要查1万-10条数据呀!
------解决方案--------------------
分别解析一下:
mysql> explain SELECT `B_id`
FROM `zhh_bizinfo`
WHERE `B_buytype` = 1 limit 0,30;
mysql> SELECT `B_id`
FROM `zhh_bizinfo`
WHERE `B_buytype` = 2 limit 0,30;
看看它们扫描的行数就知道原因了

------解决方案--------------------
楼上的有道理.