MySQL 设置变量的副作用

WBOY
リリース: 2016-06-07 17:42:13
オリジナル
1150 人が閲覧しました

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

。)

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

如果查询必须使用一个更大的排序缓存才能比较好地执行,可以在查询执行前增加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” 博客,请务必保留此出处

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート