在一个商城(前台/后台)统计查询 需要按照 , 最低或最高(最大/最小)查询销量, 价格, 库存, 评论数... ...的时候一般需要用到mysql中min或者max函数来解决.
但是往往min()或者max()函数往往会造成全表扫描. 那么如何快速查找出自己想要的数据呢, 请看我下面做的测试:
首先来看一下表结构:
CREATE TABLE `biggoods` ( `goods_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cat_id` int(10) unsigned NOT NULL, `goods_name` varchar(32) NOT NULL, `click_count` int(11) NOT NULL DEFAULT '0', `goods_number` int(11) NOT NULL DEFAULT '0', `is_delete` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`goods_id`), KEY `goods_cat_id` (`goods_id`,`cat_id`), KEY `cat_goods_id` (`cat_id`,`goods_id`) ) ENGINE=InnoDB AUTO_INCREMENT=34143982 DEFAULT CHARSET=utf8 | goods表中大概有三千万行数据
用时4.45毫秒
用时0.00毫米
普通语句:
优化后的sql语句: