视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL设置变量的副作用
2020-11-09 10:13:27 责编:小采
文档


动态设置变量可能导致意外的副作用,例如从缓冲中刷新脏块。务必小心那些可以在线更改的设置,因为它们可能导致数据库做大量的工作。有时可以通过名称推断一个变

。)

总的来说,设置很大的排序缓存代价可能非常高,所以除非确定必须要这么大,否则不要增加排序缓存的大小。

如果查询必须使用一个更大的排序缓存才能比较好地执行,可以在查询执行前增加sort_buffer_size的值,执行完成后恢复DEFAULT。

eg:

SET @@session.sort_buffer_size := ; #Execute the query SET @@session.sort_buffer_size := DEFAULT;

可以将类似的代码封在函数中以方便使用。其它可以设置的单个连接级别的变量有read_buffer_size,read_rnd_buffer_size,tmp_table_size,以及myisam_sort_buffer_size。

特别说明:本文章是来自的一章节。

个人感悟:理解可动态更改的变量产生的影响是蛮重要的,一不小心,可能导致负载飞一般的暴涨,CPU刷刷的飙升,虚拟主机,甚至宕机。

糗事:本人曾在线上数据库动态修改query_cache_szie的值,本来server的负载都40-50的样子啦,当时也不没考虑那么多,服务器租用,就直接改了,负载瞬间飙升到了200多,那个汗啊,,,

好的东西是拿出来分享的,空间,那样它就会更美!!!

本文出自 “Focus on the database” 博客,请务必保留此出处

下载本文
显示全文
专题