数据库缓存
什么是数据库缓存?
MySQL等一些常见的关系型数据库的数据都存储在磁盘当中,在高并发场景下,业务应用对MySQL产生的增删改查的操作造成巨大的I/O开销和查询压力,这无疑对数据库和服务器都是一种巨大的压力,为了解决此类问题,缓存数据的概念应运而生;
极大地解决数据库服务器的压力;
提高应用数据的响应速度;
常见的缓存形式:内存缓存,文件缓存;
为什么要使用缓存?
缓存数据是为了让客户端很少甚至不访问数据库服务器进行数据的查询,高并发下,能最大程度地降低对数据库服务器的访问压力;
用户请求–>数据查询–>连接数据库服务器并查询数据–>将数据缓存起来(HTML,内存,JSON,序列化数据)–>显示给客户端
用户再次请求或新用户访问–>数据查询–>直接从缓存中获取数据–>显示给客户端;
缓存需要考虑的内容
- 缓存方式的选择
- 缓存场景的选择
- 缓存数据的实时性
- 缓存数据的稳定性
MySQL的查询缓存
query_cache_type : 查询缓存类型,有0,1,2三个取值,0则不使用查询缓存,1标识始终使用查询缓存,2标识按需使用查询缓存;
query_cache_type为1时,也可以关闭查询缓存;
SELECT SQL_NO_CACHE * FROM my_table WHERE condition
query_cache_type为2时,可按需使用查询缓存;
SELECT SQL_CACHE * from my_table WHERE condition
query_cache_size
默认情况下query_cache_size为0,标识为查询缓存预留的内存为0,则无法使用查询缓存;
SET