數據表結構
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還真耗時間,機器 太爛了。哎!)