摘要
如果能把每一个sql语句查询结果缓存起来。如果有缓存了,以后在某一段时间内大家再访问就不用直接请求数据库,直接取缓存就可以了。
msyql结果缓存的分类:
(1):结果缓存在磁盘上;
(2):结果缓存在内存中;
(3):结果直接缓存到mysql数据库中;
1:什么是mysql查询结果缓存?
我们都知道,我们网站的内容都是放在数据库里面的,我们浏览网站的每一个页面都要向数据库发送sql语句查询请求,才能得到结果。不管你伪静态,还是动态,都需要发送sql请求,除了真正的纯静态不需要发送sql查询请求。
既然要发送请求,那么:每一个人访问一下我的网站首页,就向数据库请求一次,这样未免有点太浪费了,最重要的是:一个网站首页得有很多条sql语句?这些sql语句都得向数据库请求;要是有100个人,1000个人......甚至更多的人访问呢?请求得过来吗?每一个服务器承受的请求次数也是有限制的。
如果我们能把每一个sql语句查询结果缓存起来。如果有缓存了,以后在某一段时间内大家再访问就不用直接请求数据库,直接取缓存就可以了。这样不是很好吗?
2:msyql结果缓存的分类:
(1):结果缓存在磁盘上;
(2):结果缓存在内存中;
(3):结果直接缓存到mysql数据库中;
以上几种缓存都是各有优点的,存在内存中读取的速度是最快的。缺点就是缓存结果可以随时消失。存在磁盘上也可以,但是读取磁盘的速度相对来说是很慢的。当然,固态硬盘速可以说是非常快的。直接缓存到数据库中这个从字面上也是很容易理解的,就不多讲了。数据库除了mysql,还有其它数据库像redis、mongodb、memcach等这些专业的数据库,它们各有优点。