zfxcms ^回到顶部

您的当前位置:首页 > 架构 > 架构思想 > 高并发解决方案-数据库缓存

高并发解决方案-数据库缓存

所属分类: 架构思想   2020-03-21 19:04:15  编辑:admin  浏览次数 494 次

  1. 什么是数据库缓存

    MySQL等-些常见的关系型数据库的数据都存储在磁盘当中 ,在高并发场景下,业务应用对MySQL产生的增、删、改、查的操作造成巨大的I/O开销和查询压力,这无疑对数据库和服务器都是一种巨大的压力,为了解决此类问题,缓存数据的概念应运而生。

  2. 为什么要缓存

    极大地解决数据库服务器的压力提高应用数据的响应速度

    缓存数据是为了让客户端很少甚至不访问数据库服务器进行数据的查询,高并发下,能最大程度地降低对数据库服务器的访问压力。

  3. 使用MySQL查询缓存

    用户请求-->数据查询-->连接数据库服务器并查询数据-->将数缓存起来( HTML、内存、JSON、序列化数据) -->显示给客户用户再次请求或者新用户访问-->数据查询-->直接从缓存中获取据-->显示给客户端

    缓存方式的选择缓存场景的选择缓存数据的实时性缓存数据的稳定性

    启用MySQL查询缓存极大地降低CPU使用率

    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

    默认情况Fquery. cache size为0 ,表示为查询缓存预留的内存为0,则无法使用查询缓存

    SET GLOBAL query. cache size = 134217728;

    My.conf中写

    查询缓存可以看做是SQL文本和查询结果的映射

    第二次查询的SQL和第一次查询的SQL完全相同,则会使用缓SHOW STATUS LIKE Qcache hits' ;查看命中次数表的结构或数据发生改变时,查询缓存中的数据不再有效清理缓存

    FLUSH QUERY CACHE: /清理查询缓存内存碎片

    RESET QUERY CACHE; /从查询缓存中移出所有查询

    FLUSH TABLES; //关闭所有打开的表,同时该操作将会清空缓存的内容

  4. 使用memacahe缓存

    http://www.zfx.fun/xiazai/38.html memcache缓存

  5. 使用redis缓存

    http://www.zfx.fun/xiazai/70.html redis缓存

  6. 数据库优化

    http://www.zfx.fun/xiazai/46.html 数据库优化


服务器文章检索

服务器文章目录