mysql与redis在各种情况下性能对比

数据表结构

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还真耗时间,机器 太烂了。哎!)




原文地址:https://www.cnblogs.com/yifan72/p/7485115.html