数据表结构
CREATE TABLE `jx_goods_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`goods_name` varchar(100) DEFAULT NULL,
`shop_price` varchar(100) DEFAULT NULL,
`goods_content` text,
`original_img` varchar(222) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=526825 DEFAULT CHARSET=utf8
数据量:1613312
goods_name='yuyu_购物车测试'数据量为4384
$sql = "SELECT * FROM jx_goods_test WHERE goods_name='yuyu_购物车测试'";
$info = M()->query($sql); 纯mysql未开启缓存未加索引情况下耗时:3秒以上(测试多次均为这个接口)
开启mysql缓存情况下耗时:0.021秒
关闭缓存采用索引方式:0.21秒
数据都存储在一张表中对比,可以明显感觉到,开启缓存带来显著的提升,但是开启缓存有个点没有考虑进去,就是缓存失效以及命中率的问题,如果算上这些,其实带来的效益还是没有索引带来的直观,当然这个得看取舍了。各有优势劣势。
下面采用redis测试下结果数据如何,假设数据已经全部存入redis中(ps:麻痹,这160多万数据从mysql进入redis还真耗时间,机器 太烂了。哎!)