返回顶部
首页 > 资讯 > 数据库 >优化SQL系统变量分析
  • 796
分享到

优化SQL系统变量分析

2024-04-02 19:04:59 796人浏览 安东尼
摘要

这篇文章主要介绍“优化sql系统变量分析”,在日常操作中,相信很多人在优化SQL系统变量分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”优化S

这篇文章主要介绍“优化sql系统变量分析”,在日常操作中,相信很多人在优化SQL系统变量分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”优化SQL系统变量分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1、全局内存缓冲区
1)key_buffer_size
    该变量是只存储MyISAM索引信息的全局内存缓冲区。在对应的.MYI文件中的索引数据从磁盘上被读取出来然后存入这个缓冲区。想要调整key_buffer_size的大小,只需要简单统计所有MyISAM表中总索引的大小,然后随着数据随时间增长而调整。
 当这个索引码缓冲区中没有足够的空间来存储新的索引数据时,将会用最近最少使用的的方法覆盖掉旧的页面。
2)innodb_buffer_pool_size
    innodb_buffer_pool_size是用来存储所有InnoDB数据和索引的全局内存缓冲区。对完全使用InnoDB的数据库来说,这是个很重要的缓冲区,一定要正确分配,不正确的分配这个缓冲区可能导致额外的磁盘io开销并降低查询性能。
    常见的方法是把innodb_buffer_pool_size设定为RAM的80%,但是很多情况下这样设定不合理,如RAM大小50G,而数据库总量只有2G。
    可以使用SHOW GLOBAL STATUS或者SHOW ENGINE INNODB STATUS命令来监控InnoDB缓冲池的使用情况。

Mysql> SHOW GLOBAL STATUS LIKE 'innodb_buffer%';

3)innodb_additional_mem_pool_size
    innodb_additional_mem_pool_size变量为InnoDB特定数据字典信息定义了内存池。对于这个变量,没有什么好的方法来确定它的最优值,一般将其设置为10M。
4)query_cache_size
    query_cache_size变量是一个用来存储经常缓存过的查询全局内存缓冲区。使用query_cache_type变量可以总体启用和禁用查询缓存。启用时query_cache_size的值可能为0,这表示没有查询需要被缓存。而mysql实例可以通过动态的改变query_cache_size的值在某个时间仍然可以支持缓存。
2、全局/会话内存缓冲区
1)max_heap_table_size
      这个变量定义了MySQL MEMORY存储引擎表的最大容量。当某个表容量超过最大值时,应用程序会收到下面的信息。
mysql> set session max_heap_table_size=1024*1024;
 Query OK, 0 rows affected (0.02 sec)
 mysql> create table test (id int(10),user_type varchar(20),code int(10)) engine=memory;
 Query OK, 0 rows affected (0.02 sec)
 mysql> insert into test select * from t_user_info_tmp_bak;
ERROR 1114 (HY000): The table 'test' is full

    这个变量有一个全局默认值,而且在上例的每个线程上也可以指定这个变量的值。MySQL并没有为所有MEMORY表的总容量做任何限制。这个变量仅用于单个表。
MEMORY存储引擎表的总大小可以通过SHOW TABLE STATUS命令和INFORMATION_SCHEMA.TABLES表来确定。
2)tmp_table_size
    max_heap_table_size和tmp_table_size变量中的最小值定义了内部表的最大容量,内部临时表用于存储在内存中的查询执行过程。如果在explain select的结果中的extra列中出现了using temporary,那么可以判断在查询执行过程中用到了内部临时表。
    MySQL使用memory存储引擎来支持这些内部临时表,但是内部临时表的容量超过max_heap_table_size和tmp_table_size中的最小值是,MySQL会在临时位置创建一个基于MyISAM磁盘的表。
3、会话缓冲区
1)join_buffer_size
    join_buffer_size定义了每个线程的内存缓冲区,当查询必须连接两个表的数据集并且不能使用索引时,这个缓冲区会被用到。这个缓冲区是专门为每个线程的索引连接操作准备的。可以通过查询计划中Extra列的值为Using join buffer来证明使用了这个缓冲区。建议这个缓冲区设置为默认大小。增加这个缓冲区的大小也不会加快连接操作的速度。
2)sort_buffer_size
    这个变量定义了每个线程用于对结果集排序的每线程缓冲区。可以通过查询计划中extra列的值为Using file-sort来确定使用了这个缓冲区。不推荐增加这个缓冲区的大小,因为这个缓冲区是完全分配给每个请求的,而且当默认值太大时可能会降低查询的执行速度。
3)read_buffer_size
    当SQL查询执行连续的表数据扫描时会用到这个缓冲区。只有在大量连续表数据扫描时才推荐增加这个缓冲区的大小。
4)read_rnd_buffer_size
    这个缓冲区用来存储那些作为排序操作的结果被读取的数据。这个缓冲区和read_buffer_size的不同之处在于,他读取的连续数据是和数据在磁盘上的存储方式相关的。只有在执行大型ORDER BY语句时才推荐增加这个缓冲区的大小。
4、有关基础工具的变量
1)slow_query_log
    这个布尔类型的变量可以启用执行缓慢的查询的日志功能,日志将会报告索引执行时间超过long_query_time变量值的查询。
2)slow_query_log_file
    这个变量定义了当慢查询日志功能开启时保存所有被记录的查询文件的文件名。这个是全局变量,可以动态改变它的值。
3)general_log
    这个变量用来启用记录每条查询执行情况的全面查询日志。这个变量只能在每个服务器实例值上启用或者禁用。这是个全局变量,可以动态改变它的值。
4)general_log_file
这个变量定义了记录了当全面日志启用时所有SQL查询的文件名,这是个全局变量,可以动态改变它的值。
5)long_query_time
    这个变量指定了一个查询执行时间的限制,当慢查询日志功能启用时,执行时间超过这个限制的查询都会被记录在慢查询日志中。
6)log_output
    这个变量定义了慢查询日志和全面查询日志的输出位置,有效的选项有file,table,none。当定义输出位置为file是,日志的输出文件分别由slow_query_log_file和general_log_file系统变量来定义。如果这个变量为table,日志输出将会分别记录在mysql.slow_log和mysql.general_log表中。这两个表是在内部以CSV存储引擎定义的,所以不支持任何索引。这是个全局变量,可被动态定义。
5、其他优化变量
1)optimizer_switch
    这个变量定义了一系列MySQL查询优化器特性的高级开关,可以用来关闭(默认是激活状态)三种不同的索引合并条件以及引擎下推条件。
2)default_storage_engine
    当未指定ENGINE值时,这个变量用来为create table命令指定存储引擎。
3)max_allowed_packet
    可以用max_allowed_packet变量来定义SQL查询结果集的最大值。增大这个值会运行查询返回更大的结果集。

到此,关于“优化SQL系统变量分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: 优化SQL系统变量分析

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

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

猜你喜欢
  • 优化SQL系统变量分析
    这篇文章主要介绍“优化SQL系统变量分析”,在日常操作中,相信很多人在优化SQL系统变量分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”优化S...
    99+
    2024-04-02
  • mysql变量用法实例分析【系统变量、用户变量】
    本文实例讲述了mysql变量用法。分享给大家供大家参考,具体如下: 本文内容: 系统变量 用户变量 局部变量 首发日期:2018-04-18 系统变量: 系统变量就是系统...
    99+
    2022-05-15
    mysql 变量 系统变量 用户变量
  • MySQL系统变量优化的方法是什么
    本篇内容介绍了“MySQL系统变量优化的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • SQL查询优化级别分析
    SQL查询优化级别分析是指根据查询的复杂性和执行效率的要求,对查询进行优化的程度划分。通常可以分为以下几个级别: 索引优化:在查询语句中添加适当的索引,可以加快查询的速度。索引是数据库中的一种数据结构,可以快速定位到符合条件的数据行,减...
    99+
    2024-08-03
    sql
  • 如何使用变量对SQL进行优化
    这篇文章主要介绍“如何使用变量对SQL进行优化”,在日常操作中,相信很多人在如何使用变量对SQL进行优化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用变量对SQL进行...
    99+
    2024-04-02
  • CentOS5.x系统内核优化的示例分析
    这篇文章主要为大家展示了“CentOS5.x系统内核优化的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CentOS5.x系统内核优化的示例分析”这篇文章吧。主要是针对/etc/sysc...
    99+
    2023-06-10
  • C#中变量初始化实例分析
    本文小编为大家详细介绍“C#中变量初始化实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#中变量初始化实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。请看下面的实例,使用了各种类型的变量:name...
    99+
    2023-06-17
  • 千万级用户系统SQL调优的示例分析
    这篇文章主要介绍了千万级用户系统SQL调优的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用户日活百万级,注册用户千万级,而且若还没有进行分库分表,则该DB里的用户表...
    99+
    2023-06-29
  • CentOS系统环境精简优化的示例分析
    这篇文章主要介绍CentOS系统环境精简优化的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一步、删除不必要的自带软件包yum remove Deployment_Guide-en-US finger cu...
    99+
    2023-06-10
  • 一个left join SQL 简单优化分析
    有个关联查询的sql,需要2秒多,于是进行查看一番: SELECT a.id, a.brand_id, a.series_id, a.product_id, a.material_i...
    99+
    2024-04-02
  • 对SQL语句进行分析和优化
    安装和查看ORACLE执行计划ORACLE在执行SQL语句时使用的步骤的集合叫做执行计划前起条件:    在目录:$ORACLE_HOME/RDBMS/ADMIN目录下的执行u...
    99+
    2024-04-02
  • oracle优化sql的内部过程分析
    本篇内容主要讲解“oracle优化sql的内部过程分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“oracle优化sql的内部过程分析”吧!Oracle对sq...
    99+
    2024-04-02
  • SQL查询优化原理实例分析
    今天小编给大家分享一下SQL查询优化原理实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。有一张财务流水表,未分库分表,...
    99+
    2023-07-02
  • 分析SQL优化的limit分页延迟关联
    这篇文章主要介绍“分析SQL优化的limit分页延迟关联”,在日常操作中,相信很多人在分析SQL优化的limit分页延迟关联问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析...
    99+
    2024-04-02
  • SQL Server中怎么优化安全系统
    这篇文章将为大家详细讲解有关SQL Server中怎么优化安全系统,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  查询最新的包  你要保证你总能有最新的包...
    99+
    2024-04-02
  • MySQL数据库性能优化之SQL优化的示例分析
    这篇文章将为大家详细讲解有关MySQL数据库性能优化之SQL优化的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  注:这篇文章是以 MySQL 为背景,很多内容...
    99+
    2024-04-02
  • MySQL中SQL语句优化的示例分析
    这篇文章主要介绍MySQL中SQL语句优化的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!sql如下:sql强制用了into_time索引# Time: 2017-02-14...
    99+
    2024-04-02
  • MySQL中SQL优化建议的示例分析
    这期内容当中小编将会给大家带来有关MySQL中SQL优化建议的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。今天早上看到同事的一个优化需求,优化的时间其实不多,但...
    99+
    2024-04-02
  • mysql 中怎么优化变量
    这篇文章给大家介绍mysql 中怎么优化变量,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 [d] port = 3306 server-id = 1  socket...
    99+
    2024-04-02
  • MySQL中SQL语句分析与查询优化的示例分析
    这篇文章主要为大家展示了“MySQL中SQL语句分析与查询优化的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中SQL语句分析与查询优化的示例...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作