`

mysql 的vairables

阅读更多

mysqld服务器维护两种变量。全局变量影响服务器的全局操作。会话变量影响具体客户端连接相关操作。

 

服务器启动时,将所有全局变量初始化为默认值。可以在选项文件或命令行中指定的选项来更改这些默认值。服务器启动后,通过连接服务器并执行SET GLOBAL var_name语句可以更改动态全局变量。要想更改全局变量,必须具有SUPER权限。

 

服务器还为每个客户端连接维护会话变量。连接时使用相应全局变量的当前值对客户端会话变量进行初始化。客户可以通过SET SESSION var_name语句来更改动态会话变量。设置会话变量不需要特殊权限,但客户可以只更改自己的会话变量,而不更改其它客户的会话变量。

 

任何访问全局变量的客户端都可以看见对全局变量的更改。但是,它只影响在更改后连接的从该全局变量初始化相应会话变量的客户端。它不会影响已经连接上的客户端的会话变量(甚至是执行SET GLOBAL语句的客户端)。

 

当使用启动选项设置变量时,变量值可以使用后缀K、M或G分别表示千字节、兆字节或gigabytes。例如,下面的命令启动服务器时的键值缓冲区大小为16 megabytes:

 

mysqld --key_buffer_size=16M

 

后缀的大小写美关系;16M和16m是同样的。

 

运行时,使用SET语句来设置系统变量。此时,不能使用后缀,但值可以采取下列表达式:

 

mysql> SET sort_buffer_size = 10 * 1024 * 1024;

 

要想显式指定是否设置全局或会话变量,使用GLOBAL或SESSION选项:

 

mysql> SET GLOBAL sort_buffer_size = 10 * 1024 * 1024;

 

mysql> SET SESSION sort_buffer_size = 10 * 1024 * 1024;

 

两个选项均没有,则语句设置会话变量。

 

 

可以通过SHOW VARIABLES语句查看系统变量及其值。

 

mysql> SHOW VARIABLES;

 

1. back_log

 

指定MySQL可能的连接数量。当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很短)检查连接并且启动一个新线程。

 

back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自己的限制。 试图设定back_log高于你的操作系统的限制将是无效的。

 

当观察MySQL进程列表,发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时,就要加大 back_log 的值。back_log默认值为50。

 

2. basedir

 

MySQL主程序所在路径,即:--basedir参数的值。

 

3. bdb_cache_size

 

分配给BDB类型数据表的缓存索引和行排列的缓冲区大小,如果不使用DBD类型数据表,则应该在启动MySQL时加载 --skip-bdb 参数以避免内存浪费。

 

4.bdb_log_buffer_size

 

分配给BDB类型数据表的缓存索引和行排列的缓冲区大小,如果不使用DBD类型数据表,则应该将该参数值设置为0,或者在启动MySQL时加载 --skip-bdb 参数以避免内存浪费。

 

5.bdb_home

 

参见 --bdb-home 选项。

 

6. bdb_max_lock

 

指定最大的锁表进程数量(默认为10000),如果使用BDB类型数据表,则可以使用该参数。如果在执行大型事物处理或者查询时发现 bdb: Lock table is out of available locks or Got error 12 from ... 错误,则应该加大该参数值。

 

7. bdb_logdir

 

指定使用BDB类型数据表提供服务时的日志存放位置。即为 --bdb-logdir 的值。

 

8. bdb_shared_data

 

如果使用 --bdb-shared-data 选项则该参数值为On。

 

9. bdb_tmpdir

 

BDB类型数据表的临时文件目录。即为 --bdb-tmpdir 的值。

 

10. binlog_cache_size

 

为binary log指定在查询请求处理过程中SQL 查询语句使用的缓存大小。如果频繁应用于大量、复杂的SQL表达式处理,则应该加大该参数值以获得性能提升。

 

11. bulk_insert_buffer_size

 

指定 MyISAM 类型数据表表使用特殊的树形结构的缓存。使用整块方式(bulk)能够加快插入操作( INSERT ... SELECT, INSERT ... VALUES (...), (...), ..., 和 LOAD DATA INFILE) 的速度和效率。该参数限制每个线程使用的树形结构缓存大小,如果设置为0则禁用该加速缓存功能。注意:该参数对应的缓存操作只能用户向非空数据表中执行插入操作!默认值为 8MB。

 

12. character_set

 

MySQL的默认字符集。

 

13. character_sets

 

MySQL所能提供支持的字符集。

 

14. concurrent_inserts

 

如果开启该参数,MySQL则允许在执行 SELECT 操作的同时进行 INSERT 操作。如果要关闭该参数,可以在启动 mysqld 时加载 --safe 选项,或者使用 --skip-new 选项。默认为On。

 

15. connect_timeout

 

指定MySQL服务等待应答一个连接报文的最大秒数,超出该时间,MySQL向客户端返回 bad handshake。

 

16. datadir

 

指定数据库路径。即为 --datadir 选项的值。

 

17. delay_key_write

 

该参数只对 MyISAM 类型数据表有效。有如下的取值种类:

 

off: 如果在建表语句中使用 CREATE TABLE ... DELAYED_KEY_WRITES,则全部忽略

 

DELAYED_KEY_WRITES;

 

on: 如果在建表语句中使用 CREATE TABLE ... DELAYED_KEY_WRITES,则使用该选项(默认);

 

all: 所有打开的数据表都将按照 DELAYED_KEY_WRITES 处理。

 

如果 DELAYED_KEY_WRITES 开启,对于已经打开的数据表而言,在每次索引更新时都不刷新带有

 

DELAYED_KEY_WRITES 选项的数据表的key buffer,除非该数据表关闭。该参数会大幅提升写入键值的速

 

度。如果使用该参数,则应该检查所有数据表:myisamchk --fast --force。

 

18.delayed_insert_limit

 

在插入delayed_insert_limit行后,INSERT DELAYED处理模块将检查是否有未执行的SELECT语句。如果有,在继续处理前执行允许这些语句。

 

19. delayed_insert_timeout

 

一个INSERT DELAYED线程应该在终止之前等待INSERT语句的时间。

 

20. delayed_queue_size

 

为处理INSERT DELAYED分配的队列大小(以行为单位)。如果排队满了,任何进行INSERT DELAYED的客户必须等待队列空间释放后才能继续。

 

21. flush

 

在启动MySQL时加载 --flush 参数打开该功能。

 

22. flush_time

 

如果该设置为非0值,那么每flush_time秒,所有打开的表将被关,以释放资源和sync到磁盘。注意:只建议在使用 Windows9x/Me 或者当前操作系统资源严重不足时才使用该参数!

 

23. ft_boolean_syntax

 

搜索引擎维护员希望更改允许用于逻辑全文搜索的操作符。这些则由变量 ft_boolean_syntax 控制。

 

24. ft_min_word_len

 

指定被索引的关键词的最小长度。注意:在更改该参数值后,索引必须重建!

 

25. ft_max_word_len

 

指定被索引的关键词的最大长度。注意:在更改该参数值后,索引必须重建!

 

26. ft_max_word_len_for_sort

 

指定在使用REPAIR, CREATE INDEX, or ALTER TABLE等方法进行快速全文索引重建过程中所能使用的关键词的最大长度。超出该长度限制的关键词将使用低速方式进行插入。加大该参数的值,MySQL将会建立更大的临时文件(这会减轻CPU负载,但效率将取决于磁盘I/O效率),并且在一个排序取内存放更少的键值。

 

27. ft_stopword_file

 

从 ft_stopword_file 变量指定的文件中读取列表。在修改了 stopword 列表后,必须重建 FULLTEXT 索引。

 

28. have_innodb

 

YES: MySQL支持InnoDB类型数据表; DISABLE: 使用 --skip-innodb 关闭对InnoDB类型数据表的支持。

 

29. have_bdb

 

YES: MySQL支持伯克利类型数据表; DISABLE: 使用 --skip-bdb 关闭对伯克利类型数据表的支持。

 

30. have_raid

 

YES: 使MySQL支持RAID功能。

 

31. have_openssl

 

YES: 使MySQL支持SSL加密协议。

 

32. init_file

 

指定一个包含SQL查询语句的文件,该文件在MySQL启动时将被加载,文件中的SQL语句也会被执行。

 

33. interactive_timeout

 

服务器在关上它前在一个交互连接上等待行动的秒数。一个交互的客户被定义为对mysql_real_connect()使用CLIENT_INTERACTIVE选项的客户。也可见wait_timeout。

 

34. join_buffer_size

 

用于全部联合(join)的缓冲区大小(不是用索引的联结)。缓冲区对2个表间的每个全部联结分配一次缓冲区,当增加索引不可能时,增加该值可得到一个更快的全部联结。(通常得到快速联结的最佳方法是增加索引。)

 

35. key_buffer_size

 

用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始变慢慢。必须为OS文件系统缓存留下一些空间。为了在写入多个行时得到更多的速度。

 

36. language

 

用户输出报错信息的语言。

 

37. large_file_support

 

开启大文件支持。

 

38. locked_in_memory

 

使用 --memlock 将mysqld锁定在内存中。

 

39. log

 

记录所有查询操作。

 

40. log_update

 

开启update log。

 

41. log_bin

 

开启 binary log。

 

42. log_slave_updates

 

如果使用链状同步或者多台Slave之间进行同步则需要开启此参数。

 

43. long_query_time

 

如果一个查询所用时间超过该参数值,则该查询操作将被记录在Slow_queries中。

 

44. lower_case_table_names

 

1: MySQL总使用小写字母进行SQL操作;

 

0: 关闭该功能。

 

注意:如果使用该参数,则应该在启用前将所有数据表转换为小写字母。

 

45. max_allowed_packet

 

一个查询语句包的最大尺寸。消息缓冲区被初始化为net_buffer_length字节,但是可在需要时增加到max_allowed_packet个字节。该值太小则会在处理大包时产生错误。如果使用大的BLOB列,必须增加该值。

 

46. net_buffer_length

 

通信缓冲区在查询期间被重置到该大小。通常不要改变该参数值,但是如果内存不足,可以将它设置为查询期望的大小。(即,客户发出的SQL语句期望的长度。如果语句超过这个长度,缓冲区自动地被扩大,直到max_allowed_packet个字节。)

 

47. max_binlog_cache_size

 

指定binary log缓存的最大容量,如果设置的过小,则在执行复杂查询语句时MySQL会出错。

 

48. max_binlog_size

 

指定binary log文件的最大容量,默认为1GB。

 

49. max_connections

 

允许同时连接MySQL服务器的客户数量。如果超出该值,MySQL会返回Too many connections错误,但通常情况下,MySQL能够自行解决。

 

50. max_connect_errors

 

对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行:FLUSH HOST;。

 

51. max_delayed_threads

 

不要启动多于的这个数字的线程来处理INSERT DELAYED语句。如果你试图在所有INSERT DELAYED线程在用后向一张新表插入数据,行将被插入,就像DELAYED属性没被指定那样。

 

52. max_heap_table_size

 

内存表所能使用的最大容量。

 

53. max_join_size

 

如果要查询多于max_join_size个记录的联合将返回一个错误。如果要执行没有一个WHERE的语句并且耗费大量时间,且返回上百万行的联结,则需要加大该参数值。

 

54. max_sort_length

 

在排序BLOB或TEXT值时使用的字节数(每个值仅头max_sort_length个字节被使用;其余的被忽略)。

 

55. max_user_connections

 

指定来自同一用户的最多连接数。设置为0则代表不限制。

 

56. max_tmp_tables

 

(该参数目前还没有作用)。一个客户能同时保持打开的临时表的最大数量。

 

57. max_write_lock_count

 

当出现max_write_lock_count个写入锁定数量后,开始允许一些被锁定的读操作开始执行。避免写入锁定过多,读取操作处于长时间等待状态。

 

58. myisam_recover_options

分享到:
评论

相关推荐

    mysql5.5、mysql5.6、mysql5.7、mysql8 各种版本最新下载合集

    mysql5.5、mysql5.5、mysql5.7、mysql8 各种版本最新下载合集 MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提 高了灵活性。 MySQL...

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    ├─新版MySQL DBA 课件ppt │ 第一课数据库介绍篇.pdf │ 第七课MySQL数据库设计.pdf │ 第三十一课percona-toolkits 的实战及自动化.pdf │ 第三课MySQL授权认证.pdf │ 第九课MySQL字符集.pdf │ 第二十一课MySQL...

    mysql8、mysql5两个版本驱动

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,其驱动程序是Java应用程序连接MySQL数据库的关键组件。本文将详细介绍MySQL 8和MySQL 5驱动的区别以及与JDK版本的兼容性问题。 首先,MySQL 8和5的主要区别在于...

    C#连接MySQL需要的MySql.Data.dll,MySql.Web.dll

    在C#编程环境中,连接MySQL数据库通常依赖于特定的数据提供者,这就是MySql.Data.dll和MySql.Web.dll的角色。这两个动态链接库(DLL)文件是MySQL官方提供的.NET数据访问组件,使得C#开发者能够轻松地与MySQL服务器...

    MySQL5+MySQL8中文手册(chm文件)

    如果正在使用MySQL软件的较旧版本,请参阅MySQL 5.0参考手册,该手册涵盖了MySQL 5.0,或参阅MySQL 4.1参考手册,该手册涵盖了MySQL 4.1以及MySQL的所有早期版本。在手册的文本中,通过引用发布版本(5.1.x),注明...

    mysql数据库镜像安装包+教程(5.7版本)

    mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql...

    mysql驱动jar 文件适用MySQL5.7

    MySQL驱动jar文件是Java应用程序与MySQL数据库之间通信的关键组件,主要功能是提供Java Database Connectivity (JDBC) API,使得Java开发者能够通过编写Java代码来执行SQL语句,从而操作MySQL数据库。标题提到的...

    mysql57驱动jar包

    mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57...

    Mysql测试数据 Mysql测试数据 Mysql测试数据

    Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql...

    mysql驱动(适用于mysql5.7版本)

    MySQL驱动是Java应用程序连接到MySQL数据库的关键组件,它允许程序通过Java Database Connectivity (JDBC) API与MySQL服务器进行通信。本压缩包包含了两个适用于MySQL 5.7版本的驱动文件:`mysql-connector-java-...

    Mysql5.6、Mysql5.7 JDBC驱动

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而JDBC(Java Database Connectivity)是Java语言与数据库交互的标准接口。本文将深入探讨Mysql5.6和Mysql5.7的JDBC驱动,以及如何使用`mysql-connector-java-...

    mysql8和mysql5的连接驱动jar包

    MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其在各个版本间不断进行更新与优化以满足不断变化的用户需求。本篇文章将详细讨论MySQL8与MySQL5在连接驱动jar包方面的差异,以及如何使用这些驱动来连接Java...

    Windows mysql8.0.36.0详细安装教程,附带MySQL安装包

    在本教程中,我们将深入探讨如何在Windows操作系统上详细安装MySQL 8.0.36.0。MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),它在各种规模的企业和项目中扮演着核心角色。MySQL 8.0版本带来了许多性能...

    MySQL ODBC 5.1 Driver(Mysql驱动免安装版)

    MySQL ODBC 5.1 Driver 是一个用于连接MySQL数据库的开放数据库连接(ODBC)驱动程序,它允许用户通过标准的ODBC接口访问MySQL数据库,适用于Windows操作系统。这个版本是免安装的,意味着用户可以直接解压使用,...

    mysql 5.5版 头文件(mysql.h等)

    例如,`mysql_init()`用于初始化一个MySQL连接结构,`mysql_real_connect()`用于建立实际的数据库连接,`mysql_query()`用于执行SQL查询,而`mysql_store_result()`和`mysql_use_result()`则用于处理查询结果。...

    mysql安装教程(保姆级)-mysql-8.0.32-winx64

    mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程...

    .Net/C#连接Mysql数据库Connector/Net MySql.Data.dll 8.20.0+6.9.12

    MySQL Connector/Net ...在项目中引用组件:MySql.Data.dll (记得复制到本地中选择为true / 或直接把MySql.Data.dll复制到debug文件夹下) 在代码中 using MySql.Data.MySqlClient; ......接下来这里就看你表演了。

    mysql5.7镜像;mysql5.7镜像;mysql5.7镜像;mysql5.7镜像

    mysql5.7镜像;mysql5.7镜像;mysql5.7镜像;mysql5.7镜像

    mysql jdbc 驱动 适用于5.7及以上版本数据库

    mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上...

    深入浅出MySQL全文

    深入浅出MySQL全文 MySQL 是一种关系型数据库管理系统,广泛应用于各种行业和领域。本资源将从基础篇开始,详细讲解 MySQL 的安装、配置、启动和关闭服务、SQL 基础等知识点。 MySQL 的安装与配置 MySQL 的安装是...

Global site tag (gtag.js) - Google Analytics