数码资讯
几种MySQL启动参数的解释与优化方法
的back_log值指出多少请求可以被存储在堆栈在很短的时间之前的MySQL暂时停止回答一个新的要求。如果你有很多在短时间内连接,你需要增加它。换句话说,这是监听队列的大小对TCP / IP连接。您的操作系统对队列的大小,其自身的局限性,UNIX手册页听(2)系统调用应该有更多的细节。检查你的操作系
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
的back_log值指出多少请求可以被存储在堆栈在很短的时间之前的MySQL暂时停止回答一个新的要求。如果你有很多在短时间内连接,你需要增加它。换句话说,这是监听队列的大小对TCP / IP连接。您的操作系统对队列的大小,其自身的局限性,UNIX手册页听(2)系统调用应该有更多的细节。检查你的操作系统文档查找该变量的最大值。它是无效的尝试组比你的操作系统更高的back_log极限。
connect_timeout
mysqld服务器等待的秒数在响应是一个坏消息(连接握手说坏的握手)。
delayed_insert_timeout
插入延迟线程应等待等待插入语句终止之前的时间。
delayed_insert_limit
插入delayed_insert_limit线后,插入延迟处理器会检查任何SELECT语句不执行。如果是这样的话,这些语句的执行之前进行持续。
delayed_queue_size
对于延迟插入的处理,应该分配队列(有行)的数量。如果队列满了,执行插入延迟的任何客户都要等到队列有空为止。
flush_time
如果这是一个非零的值,在每一个flush_time二所有表将被关闭(释放资源并同步到磁盘)。
interactive_timeout
数秒服务器等待一个交互连接操作之前关闭它。一个交互式的客户定义为客户使用client_interactive选项mysql_real_connect()wait_timeout也可见。
join_buffer_size
完全连接(连接)的缓冲区的大小(不是索引连接)。缓冲区为2个表中的每一个分配一个缓冲区,并在索引不可能增加的情况下增加这个值以获得更快的完整连接(最好的获得快速连接的方法是增加索引)。
key_buffer_size
索引块的缓冲和由所有threads.key_buffer_size共享用于索引块的缓冲区大小,增加,它可以得到更好的处理指标(所有读多重写),在某种程度上,你能买得起它。如果你让它太大,系统将开始喂真慢。记住既然MySQL不缓存读取数据,你得留点空间给操作系统的文件系统缓存。为了获得更多的写作速度多行时,使用锁表。看到7.24lock表 /解锁表语法。
long_query_time
如果查询需要比这更多的时间(秒),该slow_queries记录器将被添加。
max_allowed_packet
一个包的最大尺寸。消息缓冲区初始化为net_buffer_length字节,但可以被添加到max_allowed_packet字节时需要。默认情况下,该值太小,捕捉大的(可能是错误的)数据包。如果你使用的是一个大的BLOB列,你需要增加这个值应为。你想要使用的最大的BLOB大。
max_connections
客户可以在同一时间数。增加这个值会增加文件描述符需要由mysqld数。看看下面的文件描述符的限制18.2.4评论。看到太多的连接错误。
max_connect_errors
如果主机中中断的连接数量超过了该主机,则此主机将阻止进一步连接。
max_delayed_threads
不要启动超过处理INSERT延迟语句的线程数。如果在插入所有延迟线程之后,尝试将数据插入到新表中,那么将插入行,就像没有指定延迟属性一样。
max_join_size
一个连接,可以多读max_join_size记录将返回一个错误。如果你的用户想要执行任何WHERE子句,花了很长时间,回到一百万线连接,设置它。
max_sort_length
字节数排序用BLOB或文本值(每个值仅用于头max_sort_length字节;其他的被忽略)。
max_tmp_tables
(选择现在不做任何事情)客户可以同时保持最大数量的临时表打开。
net_buffer_length
通信缓冲器复位大小之间的查询。通常这不应该被改变,但如果你的内存很小,你可以将它设置为查询的预期大小。(即所需长度由客户发出的SQL语句,如果语句超过这个长度,缓冲区自动扩展到max_allowed_packet字节。
record_buffer
每个顺序扫描线程分配一个缓冲区到扫描它的每个表的大小。如果进行大量的顺序扫描,您可能希望增加值。
sort_buffer
需要排序的每一个线程都分配了一个大小的缓冲区。将这个值添加到通过操作加速或按组排序。参见18.5 MySQL存储临时文件的位置。
table_cache
所有线程打开的表的数量,增加这个值可以增加文件描述符的数量要求mysqld.mysql需要2个文件描述符为每只打开表,看看下面的文件描述符的限制的评论,关于表缓存的工作信息,看看10.2.4 MySQL打开和关闭表。
tmp_table_size
如果临时表超过这个尺寸,MySQL生成一个表tbl_name满形状误差。如果你做了许多先进的组的查询,增加tmp_table_size价值。
thread_stack
每个线程的堆栈大小。崩溃ME测试中检测到的许多限制取决于值。默认团队的一般操作足够大。参见10.8使用自己的基准。
wait_timeout
数秒服务器等待一个连接动作结束之前it.interactive_timeout也可见。
MySQL使用是一种非常可伸缩的算法,因此通常可以使用较少的内存运行,或者为MySQL节省更多的内存以获得更好的性能。
如果你有大量的内存和大量的表,并且有一个中等数量的客户,你想要最大的性能,你应该有这样的东西:
壳> safe_mysqld O key_buffer = 1600万O table_cache = 128
O sort_buffer = 4 O record_buffer = 1m
如果内存较少,连接量大,请使用以下内容:
壳> safe_mysqld O key_buffer = 512k O sort_buffer = 100k
O record_buffer = 100k
甚至:
壳> safe_mysqld O key_buffer = 512k O sort_buffer = 16k
O table_cache = 32 - O record_buffer = 8 O net_buffer = 1k
如果有多个连接,除非mysqld已配置为每个连接使用很少的内存可能会发生交换的问题。当然,如果你有足够的内存用于所有连接,mysqld的表现更好。
注意,如果你改变一个为mysqld选项,它实际上是为服务器实例只保留。
为了理解参数更改的效果,请执行以下操作:
壳> mysqld - O key_buffer = 32m --帮助
确保帮助选项是最后一个选项;否则,在命令行之后列出的任何选项的效果将不反映在输出中。
重要的MySQL启动选项
back_log如果你需要大量的新的连接,修改它。
thread_cache_size如果你需要大量的新的连接,修改它。
的key_buffer_size索引页池可以设置为大尺寸。
由bdb_cache_size BDB表用于记录和密钥缓存。
table_cache如果有很多桌子和并发连接,修改它。
delay_key_write如果需要缓存的所有关键代码写的,把它。
log_slow_queries找到一个查询,需要花费大量的时间。
max_heap_table_size用于组
sort_buffer用于顺序和组
myisam_sort_buffer_size用于修表
join_buffer_size做无键连接时使用。
MySQL缓存(所有线程共享,一次性分配)
关键的代码缓存:key_buffer_size,默认8m。
表缓存:table_cache,默认为64。
线程缓存:thread_cache_size,默认为0。
主机名称缓存:可以在编译时修改,默认值为128。
内存映射器:当前仅用于压缩表。
注意:MySQL不进行缓存,并允许操作系统处理。
MySQL缓存区变量(非共享,按需)
sort_buffer: /组的顺序
record_buffer:扫描表。
join_buffer_size:无键联接
myisam_sort_buffer_size:修表
net_buffer_length:读取SQL语句和缓存结果。
tmp_table_size:为临时结果heap表的大小。
connect_timeout
mysqld服务器等待的秒数在响应是一个坏消息(连接握手说坏的握手)。
delayed_insert_timeout
插入延迟线程应等待等待插入语句终止之前的时间。
delayed_insert_limit
插入delayed_insert_limit线后,插入延迟处理器会检查任何SELECT语句不执行。如果是这样的话,这些语句的执行之前进行持续。
delayed_queue_size
对于延迟插入的处理,应该分配队列(有行)的数量。如果队列满了,执行插入延迟的任何客户都要等到队列有空为止。
flush_time
如果这是一个非零的值,在每一个flush_time二所有表将被关闭(释放资源并同步到磁盘)。
interactive_timeout
数秒服务器等待一个交互连接操作之前关闭它。一个交互式的客户定义为客户使用client_interactive选项mysql_real_connect()wait_timeout也可见。
join_buffer_size
完全连接(连接)的缓冲区的大小(不是索引连接)。缓冲区为2个表中的每一个分配一个缓冲区,并在索引不可能增加的情况下增加这个值以获得更快的完整连接(最好的获得快速连接的方法是增加索引)。
key_buffer_size
索引块的缓冲和由所有threads.key_buffer_size共享用于索引块的缓冲区大小,增加,它可以得到更好的处理指标(所有读多重写),在某种程度上,你能买得起它。如果你让它太大,系统将开始喂真慢。记住既然MySQL不缓存读取数据,你得留点空间给操作系统的文件系统缓存。为了获得更多的写作速度多行时,使用锁表。看到7.24lock表 /解锁表语法。
long_query_time
如果查询需要比这更多的时间(秒),该slow_queries记录器将被添加。
max_allowed_packet
一个包的最大尺寸。消息缓冲区初始化为net_buffer_length字节,但可以被添加到max_allowed_packet字节时需要。默认情况下,该值太小,捕捉大的(可能是错误的)数据包。如果你使用的是一个大的BLOB列,你需要增加这个值应为。你想要使用的最大的BLOB大。
max_connections
客户可以在同一时间数。增加这个值会增加文件描述符需要由mysqld数。看看下面的文件描述符的限制18.2.4评论。看到太多的连接错误。
max_connect_errors
如果主机中中断的连接数量超过了该主机,则此主机将阻止进一步连接。
max_delayed_threads
不要启动超过处理INSERT延迟语句的线程数。如果在插入所有延迟线程之后,尝试将数据插入到新表中,那么将插入行,就像没有指定延迟属性一样。
max_join_size
一个连接,可以多读max_join_size记录将返回一个错误。如果你的用户想要执行任何WHERE子句,花了很长时间,回到一百万线连接,设置它。
max_sort_length
字节数排序用BLOB或文本值(每个值仅用于头max_sort_length字节;其他的被忽略)。
max_tmp_tables
(选择现在不做任何事情)客户可以同时保持最大数量的临时表打开。
net_buffer_length
通信缓冲器复位大小之间的查询。通常这不应该被改变,但如果你的内存很小,你可以将它设置为查询的预期大小。(即所需长度由客户发出的SQL语句,如果语句超过这个长度,缓冲区自动扩展到max_allowed_packet字节。
record_buffer
每个顺序扫描线程分配一个缓冲区到扫描它的每个表的大小。如果进行大量的顺序扫描,您可能希望增加值。
sort_buffer
需要排序的每一个线程都分配了一个大小的缓冲区。将这个值添加到通过操作加速或按组排序。参见18.5 MySQL存储临时文件的位置。
table_cache
所有线程打开的表的数量,增加这个值可以增加文件描述符的数量要求mysqld.mysql需要2个文件描述符为每只打开表,看看下面的文件描述符的限制的评论,关于表缓存的工作信息,看看10.2.4 MySQL打开和关闭表。
tmp_table_size
如果临时表超过这个尺寸,MySQL生成一个表tbl_name满形状误差。如果你做了许多先进的组的查询,增加tmp_table_size价值。
thread_stack
每个线程的堆栈大小。崩溃ME测试中检测到的许多限制取决于值。默认团队的一般操作足够大。参见10.8使用自己的基准。
wait_timeout
数秒服务器等待一个连接动作结束之前it.interactive_timeout也可见。
MySQL使用是一种非常可伸缩的算法,因此通常可以使用较少的内存运行,或者为MySQL节省更多的内存以获得更好的性能。
如果你有大量的内存和大量的表,并且有一个中等数量的客户,你想要最大的性能,你应该有这样的东西:
壳> safe_mysqld O key_buffer = 1600万O table_cache = 128
O sort_buffer = 4 O record_buffer = 1m
如果内存较少,连接量大,请使用以下内容:
壳> safe_mysqld O key_buffer = 512k O sort_buffer = 100k
O record_buffer = 100k
甚至:
壳> safe_mysqld O key_buffer = 512k O sort_buffer = 16k
O table_cache = 32 - O record_buffer = 8 O net_buffer = 1k
如果有多个连接,除非mysqld已配置为每个连接使用很少的内存可能会发生交换的问题。当然,如果你有足够的内存用于所有连接,mysqld的表现更好。
注意,如果你改变一个为mysqld选项,它实际上是为服务器实例只保留。
为了理解参数更改的效果,请执行以下操作:
壳> mysqld - O key_buffer = 32m --帮助
确保帮助选项是最后一个选项;否则,在命令行之后列出的任何选项的效果将不反映在输出中。
重要的MySQL启动选项
back_log如果你需要大量的新的连接,修改它。
thread_cache_size如果你需要大量的新的连接,修改它。
的key_buffer_size索引页池可以设置为大尺寸。
由bdb_cache_size BDB表用于记录和密钥缓存。
table_cache如果有很多桌子和并发连接,修改它。
delay_key_write如果需要缓存的所有关键代码写的,把它。
log_slow_queries找到一个查询,需要花费大量的时间。
max_heap_table_size用于组
sort_buffer用于顺序和组
myisam_sort_buffer_size用于修表
join_buffer_size做无键连接时使用。
MySQL缓存(所有线程共享,一次性分配)
关键的代码缓存:key_buffer_size,默认8m。
表缓存:table_cache,默认为64。
线程缓存:thread_cache_size,默认为0。
主机名称缓存:可以在编译时修改,默认值为128。
内存映射器:当前仅用于压缩表。
注意:MySQL不进行缓存,并允许操作系统处理。
MySQL缓存区变量(非共享,按需)
sort_buffer: /组的顺序
record_buffer:扫描表。
join_buffer_size:无键联接
myisam_sort_buffer_size:修表
net_buffer_length:读取SQL语句和缓存结果。
tmp_table_size:为临时结果heap表的大小。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。