返回顶部
首页 > 资讯 > 数据库 >mysql优化3
  • 486
分享到

mysql优化3

mysql 2023-01-31 05:01:09 486人浏览 薄情痞子
摘要

1.5 query_cache_size(1)简介:查询缓存简称QC,使用查询缓冲,Mysql将查询结果存放在缓冲区中,今后对于同样的select语句(区分大小写),将直接从缓冲区中读取结果。一个sql查询如果以select开头,那么mys

1.5 query_cache_size
(1)简介:
查询缓存简称QC,使用查询缓冲,Mysql将查询结果存放在缓冲区中,今后对于同样的select语句(区分大小写),将直接从缓冲区中读取结果。
一个sql查询如果以select开头,那么mysql服务器将尝试对其使用查询缓存。
注:两个sql语句,只要想差哪怕是一个字符(列如大小写不一样;多一个空格等),那么这两个sql将使用不同的一个cache。
(2)判断依据
mysql> show status like "%Qcache%";
+-------------------------+---------+
| Variable_name | Value |
+-------------------------+---------+
| Qcache_free_blocks | 1 |
| Qcache_free_memory | 1031360 |
| Qcache_hits | 0 |
| Qcache_inserts | 0 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 2002 |
| Qcache_queries_in_cache | 0 |
| Qcache_total_blocks | 1 |
+-------------------------+---------+
8 rows in set (0.00 sec)

---------------------状态说明--------------------
Qcache_free_blocks:缓存中相邻内存块的个数。如果该值显示较大,则说明Query Cache 中的内存碎片较多了,FLUSH QUERY CACHE会对缓存中的碎片进行整理,从而得到一个空闲块。
注:当一个表被更新之后,和它相关的cache blocks将被free。但是这个block依然可能存在队列中,除非是在队列的尾部。可以用FLUSH QUERY CACHE语句来清空free blocks
Qcache_free_memory:Query Cache 中目前剩余的内存大小。通过这个参数我们可以较为准确的观察出当前系统中的Query Cache 内存大小是否足够,是需要增加还是过多了。
Qcache_hits:表示有多少次命中缓存。我们主要可以通过该值来验证我们的查询缓存的效果。数字越大,缓存效果越理想。
Qcache_inserts:表示多少次未命中然后插入,意思是新来的SQL请求在缓存中未找到,不得不执行查询处理,执行查询处理后把结果insert到查询缓存中。这样的情况的次数越多,表示查询缓存应用到的比较少,效果也就不理想。当然系统刚启动后,查询缓存是空的,这很正常。
Qcache_lowmem_prunes:多少条Query 因为内存不足而被清除出Query Cache。通过“Qcache_lowmem_prunes”和“Qcache_free_memory”相互结合,能够更清楚的了解到我们系统中Query Cache 的内存大小是否真的足够,是否非常频繁的出现因为内存不足而有Query 被换出。这个数字最好长时间来看;如果这个数字在不断增长,就表示可能碎片非常严重,或者内存很少。(上面的free_blocks和free_memory可以告诉您属于哪种情况)
Qcache_not_cached:不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句或者用了now()之类的函数。
Qcache_queries_in_cache:当前Query Cache 中cache 的Query 数量;
Qcache_total_blocks:当前Query Cache 中的block 数量;。

(3)配置示例

mysql> show variables like '%query_cache%' ;
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 1048576 |
| query_cache_type | OFF |
| query_cache_wlock_invalidate | OFF |
+------------------------------+---------+
6 rows in set (0.00 sec)

mysql>

-------------------配置说明-------------------------------
以上信息可以看出query_cache_type为off表示不缓存任何查询
各字段的解释:
query_cache_limit:超过此大小的查询将不缓存
query_cache_min_res_unit:缓存块的最小大小,query_cache_min_res_unit的配置是一柄”双刃剑”,默认是4KB,设置值大对大数据查询有好处,但如果你的查询都是小数据查询,就容易造成内存碎片和浪费。
query_cache_size:查询缓存大小 (注:QC存储的最小单位是1024byte,所以如果你设定了一个不是1024的倍数的值,这个值会被四舍五入到最接近当前值的等于1024的倍数的值。)
query_cache_type:缓存类型,决定缓存什么样的查询,注意这个值不能随便设置,必须设置为数字,可选项目以及说明如下:
如果设置为0,那么可以说,你的缓存根本就没有用,相当于禁用了。
如果设置为1,将会缓存所有的结果,除非你的select语句使用SQL_NO_CACHE禁用了查询缓存。
如果设置为2,则只缓存在select语句中通过SQL_CACHE指定需要缓存的查询。

修改/etc/my.cnf,配置完后的部分文件如下:
query_cache_size=256M
query_cache_type=1

您可能感兴趣的文档:

--结束END--

本文标题: mysql优化3

本文链接: https://lsjlt.com/news/188264.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql优化3
    1.5 query_cache_size(1)简介:查询缓存简称QC,使用查询缓冲,mysql将查询结果存放在缓冲区中,今后对于同样的select语句(区分大小写),将直接从缓冲区中读取结果。一个sql查询如果以select开头,那么mys...
    99+
    2023-01-31
    mysql
  • MySQL优化(3):索引
    MySQL优化中,最重要的优化手段就是索引,也是最常用的优化手段   索引简介: 索引:关键字与数据位置之间的映射关系 关键字:从数据中提取,用于标识,检索数据的特定内容 目的:加快检索   索引检索为什么快: (1)关键字相对于...
    99+
    2014-05-17
    MySQL优化(3):索引
  • 优化MySQL的3个小技巧
    这篇文章将为大家详细讲解有关优化MySQL的3个小技巧,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我并不期望成为一个专家级的 DBA,但是,在我优化 MySQL 时,我...
    99+
    2024-04-02
  • 八、IO优化(3)稀疏列
    一、Nullable  在设计表时,有时会允许某列可以使用Null值(默认)。CREATE TABLE [dbo].[EmpTable2]([EmpID] [varchar](10) NOT NULL,[DepID] [nvarc...
    99+
    2023-01-31
    稀疏 IO
  • 我必须得告诉你的MySQL优化原理3
    聊聊MySQL配置。大多数开发者可能不太会关注MySQL的配置,毕竟在基本配置没有问题的情况下,把更多的精力放在schema设计、索引优化和SQL优化上,是非常务实的策略。这时,如果再花力气去优化配置项,获...
    99+
    2024-04-02
  • mysql优化——查询优化
    这一篇mysql优化是注重于查询优化,根据mysql的执行情况,判断mysql什么时候需要优化,关于数据库开始阶段的数据库逻辑、物理结构的设计结构优化不是本文重点,下次再谈。 查看mysql语句的执行情况,判断是否需要进行优化 ...
    99+
    2016-09-05
    mysql优化——查询优化
  • 七、内存优化(3)使用DMV
    一、sys.dm_os_memory_clerks1. 查询DMVsys.dm_os_memory_clerks返回SQL Server实例中当前处于活动状态的全部内存Clerk的集合。跟踪这个DMV,可以看到内存是如何被SQL Serve...
    99+
    2023-01-31
    内存优化 DMV
  • 六、CPU优化(3)处理器组
    一、SQL Server 启动参数  SQL Server 有3个默认的启动参数,分别标识3个启动文件的位置。(1)“-d”参数。标识master.mdf文件的位置。一般为C:\Program Files\Microsoft SQL Ser...
    99+
    2023-01-31
    处理器 CPU
  • MySQL优化
    type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式 key_len列,索引长度 rows列,扫描行数。该值是个预估值 extr...
    99+
    2018-03-18
    MySQL优化
  • mysql 优化
    数据库层面:应用系统层面优化SQL优化SQL优化一般通过分析慢查询日志来抓取长事务高消耗的sql,通过结合具体业务,对sql逻辑进行分析and精简,or重写sql。通过配置slow_query_log=1和...
    99+
    2024-04-02
  • 巧用这19条MySQL优化,效率至少提高3倍
    1、EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。   下面来个简单的示例,标注(1、2、3、4、5)我们要重点关注的数据: type列,连接类型。一个好的SQL语句至少要达到range级别。杜...
    99+
    2015-05-06
    巧用这19条MySQL优化,效率至少提高3倍
  • 优化MySQL的3个简单小调整分别是什么
    本篇文章为大家展示了优化MySQL的3个简单小调整分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如果你不改变 MySQL 的缺省配置,你的服务器的性能就像...
    99+
    2024-04-02
  • Mysql优化一
    Mysql优化 一、存储引擎 1.查看所有引擎 SHOW ENGINES; 2.查看默认存储引擎 show VARIABLES LIKE '%STORAGE_engine%'; 3.MyISAM和InnoDB 对比项 MyISAM...
    99+
    2020-05-31
    Mysql优化一
  • Mysql优化01
    Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包括: a:表的设计合理化(符合3NF) b:添加适当索引(index)【四种:普通索引,主键索引,唯一索引unique,全文索引】 c:分表技术(水平分割,垂直分割) d...
    99+
    2020-06-19
    Mysql优化01 数据库入门 数据库基础教程
  • MySQL优化--MVCC
    MySQL优化--概述以及索引优化分析 MySQL优化--查询分析工具以及各种锁 七、MVCC 7.1、必备知识 7.1.1、什么是MVCC 多版本并发控制(Multiversion concurrency control, MCC 或 ...
    99+
    2022-03-08
    MySQL优化--MVCC 数据库入门 数据库基础教程
  • MySQL优化之三:SQL语句优化
    一 SQL语句优化的一般步骤:1 通过show status命令了解各种SQL语句的执行频率mysql> show status;      ...
    99+
    2024-04-02
  • MySQL 原理与优化之Update 优化
    前言: 谈到Update 语句大家可能不会陌生,很多情况下我们都会使用它来更新table中的记录。一般而言我们会使用innodb 的存储引擎,innodb引擎是基于行锁的,具体一点说是针对索引来加锁的(保证锁不...
    99+
    2022-08-14
    MySQL原理优化 MySQL Update优化
  • 3. select语句执行过程-优化器
    1.有哪些 2.开启追踪 优化器追踪默认是关闭的 2.1 开启 SHOW VARIABLES LIKE "optimizer_trace"; set optimizer_trace="enabled=on"; 2.2 执行一个sql后...
    99+
    2019-02-28
    3. select语句执行过程-优化器
  • MySQL的SQL优化
    如何获取有性能问题的sql         通过慢查询日志可以获取大部分有性能问题的SQL,但是通常对慢查询日志的分析还是有一定延迟,有些情况下还是希望实时的获取哪些SQL有性能问题,比如当前数据库服务器的压力徒增等。 slow_qu...
    99+
    2020-01-20
    MySQL的SQL优化
  • Mysql优化思路
    一、总体优化思路     首先构建脚本观察查询数,连接数等数据,确定环境原因以及内部SQL执行原因,然后根据具体原因做具体处理。 二、构建脚本观察状态 mysqladmin -uroot -p ext G   该命令可获取当前查询数...
    99+
    2016-01-13
    Mysql优化思路
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作