MySQL启动时会加载哪些缓存_Mysql 缓存启动方法及相关参数详解

在许多大中型网站时都是html页面静态化来实现访问的,为了减少数据库的访问量;但如果是实时访问数据,当数据量相对庞大时会造成数据请求访问缓慢,因此需要进行缓存数据、Mysql数据库优化以及语句优化等操作。

1、针对同一数据请求避免重复检索,减少访问mysql数据库请求

在访问相同表时尽量在同一sql中提取数据结果,减少对数据库的直接访问次数。

2、使用mysql query cache

作用:查询缓存存储SELECT查询的文本以及发送给客户端的相应结果。如果随后收到一个相同的查询,服务器从查询缓存中重新得到查询结果,而不再需要解析和执行查询。

适用范围:不发生数据更新的表。当表更改(包括表结构和表数据)后,查询缓存值的相关条目被清空。

1)执行show variables like '%query_cache%';查询语句结果如下:have_query_cacheYES

query_cache_limit1048576

query_cache_min_res_unit4096

query_cache_size1048576

query_cache_typeOFF

query_cache_wlock_invalidateOFF

各个参数含义如下:have_query_cache表明服务器在安装使已经配置了高速缓存

query_cache_size表明缓存区大小,单位为M

query_cache_type的变量值从0到2,含义分别为0或者off(缓存关闭);1或者on(缓存打开,使用sql_no_cache的select除外);2或者demand(只有带sql_cache的select语句提供高速缓存)

2)执行show status like '%Qcache%';查询语句结果如下:Qcache_free_blocks1

Qcache_free_memory1031352

Qcache_hits0

Qcache_inserts0

Qcache_lowmem_prunes0

Qcache_not_cached727044

Qcache_queries_in_cache0

Qcache_total_blocks1

各个参数含义如下:Qcache_free_blocks:表示查询缓存中目前还有多少剩余的blocks,如果该值显示较大,则说明查询缓存中的内存碎片过多了,可能在一定的时间进行整理。

Qcache_free_memory:查询缓存的内存大小,通过这个参数可以很清晰的知道当前系统的查询内存是否够用,是多了,还是不够用,DBA可以根据实际情况做出调整。

Qcache_hits:表示有多少次命中缓存。我们主要可以通过该值来验证我们的查询缓存的效果。数字越大,缓存效果越理想。

Qcache_inserts: 表示多少次未命中然后插入,意思是新来的SQL请求在缓存中未找到,不得不执行查询处理,执行查询处理后把结果insert到查询缓存中。这样的情况的次 数,次数越多,表示查询缓存应用到的比较少,效果也就不理想。当然系统刚启动后,查询缓存是空的,这很正常。

Qcache_lowmem_prunes:该参数记录有多少条查询因为内存不足而被移除出查询缓存。通过这个值,用户可以适当的调整缓存大小。

Qcache_not_cached: 表示因为query_cache_type的设置而没有被缓存的查询数量。

Qcache_queries_in_cache:当前缓存中缓存的查询数量。

Qcache_total_blocks:当前缓存的block数量。

3)执行SHOW STATUS;查询语句显示所有状态下结果,下面只是列举了部分结果:Aborted_clients11027

Aborted_connects0

Binlog_cache_disk_use0

Binlog_cache_use0

Binlog_stmt_cache_disk_use0

Binlog_stmt_cache_use0

Bytes_received1500

Bytes_sent135210

Com_admin_commands0

...

3、加cache缓存层

Cache(高速缓存)、Memory(内存)、Hard disk(硬盘)都是数据存取单元,但存取速度却有很大差异,呈依次递减的顺序。对于CPU来说,它可以从距离自己最近的Cache高速地存取数据,而不是从内存和硬盘以低几个数量级的速度来存取数据。而Cache中所存储的数据,往往是CPU要反复存取的数据,有特定的机制(或程序)来保证Cache内数据的命中率(Hit Rate)。因此,CPU存取数据的速度在应用高速缓存后得到了巨大的提高。

开启MySQL的select cache,使用命令如下:SET GLOBAL query_cache_size = 102400000;

query_cache_size默认为0时,是不开启MySQL cache功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值