这两天,一台VPS服务器的MYSQL进程的物理内存(>700MB)和虚拟内存(>1.4G)利用率非常高。
优化mysql数据库性能的十个参数: (1)、max_connections 允许的同时客户的数量。增加该值增加 mysqld 请求的文件描绘符的数量。这个数字该当增加,否则,你将经常看到 too many connections 错误。 (2)、record_buffer 每个停止一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描,你可以或许想要增加该值。 (3)、key_buffer_size 索引块是缓冲的并且被统统的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对统统读和多重写),到你能包袱得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。 (4)、back_log 哀求mysql能有的连接数量。当紧张mysql线程在一个很短时间内得到非常多的连接哀求,这就起浸染,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。 back_log 值指出在mysql暂时停止回答新哀求曩昔的短时间内若干个哀求可以或许被存在堆栈中。只需如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值 对到来的tcp/ip连接的侦听行列步队的大小。你的把持系统在这个行列步队大小上有它自己的限制。试图设定back_log高于你的把持系统的限制将是有用的。 当你观察你的主机进程列表,创造大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | null | connect | null | login | null 的待连接进程时,就要加大 back_log 的值了。 (5)、interactive_timeout 服务器在关闭它前在一个交互连接上等待行为的秒数。一个交互的客户被定义为对 mysql_real_connect()利用 client_interactive 选项的客户。 (6)、sort_buffer 每个需要停止排序的线程分配该大小的一个缓冲区。增加这值加速order by或group by把持。 (7)、table_cache 为统统线程打开表的数量。增加该值能增加mysqld哀求的文件描绘符的数量。mysql对每个唯一打开的表需要2个文件描绘符。 (8)、thread_cache_size 可以或许复用的保存在中的线程的数量。假若有,新的线程从缓存中得到,当断开连接的时候假若有空间,客户的线置在缓存中。假若有很多新的线 程,为了进步性能可以或许这个变量值。经过进程比较 connections 和 threads_created 状态的变量,可以或许看到这个变量的浸染。 (9)、mysql的搜索功能 用mysql停止搜索,目的是能不分大小写,又能用中文停止搜索 只需起动mysqld时指定 –default-character-set=gb2312 (10)、wait_timeout 服务器在关闭它曩昔在一个连接上等待行为的秒数。 注:上面的结果也仅仅是个人一些看法,你可以或许根据你自己主机的硬件情况(特别是内存大小)进一步篡改。 |
|
沙发#
发布于:2017-01-04 13:29
我俩看看。。。。。。。
|
|