众所周知数据库的管理往往离不开各种的数据优化,而要想进行优化通常我们都是通过参数来完成优化的。那么到底这些参数有哪些呢?为此在本篇文章中课课家笔者就为大家简单介绍十个有效优化MySQL性能的参数以供大家参考参考,希望能帮助到大家对MySQL数据库的维护工作。
①back_log
back_log值指出在mysql暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。通常使用这个参数只有我们期望在一个短时间内有很多连接时我们就把它添加上去,换句话说就是这个值对到来的tcp/ip连接的侦听队列的大小。但由于操作系统在这个队列大小上有它自己的限制,如果我们试图设定back_log高于操作系统的限制的话,那是没有效果的。
另外当我们观察到主机进程列表有大量264084 | unauthenticated user | xxx.xxx.xxx.xxx | null | connect | null | login | null的待连接进程时,我们就要加大back_log的值了。通常默认数值是50,我们把它修改为500。
②interactive_timeout
interactive_timeout这个参数表示的是服务器在关闭它前在一个交互连接上等待行动的秒数。通常一个交互的客户被定义为对mysql_real_connect()使用client_interactive选项的客户。通常默认数值是28800,我们把它修改为7200。
③key_buffer_size
我们知道索引块是缓冲的并且被所有的线程共享。key_buffer_size这个参数是用于索引块的缓冲区大小,如果我们添加它可得到更好处理的索引(对所有读和多重写)。当然我们也得合理设置它的值大小,如果我们使它的值太大则系统将开始换页且变得很慢。通常默认数值是8388600(8m),笔者的mysql主机有2gb内存,笔者就把它修改为402649088(400mb)。
④max_connections
max_connections表示的是允许的同时客户的数量。添加这个值以达到增加mysqld要求的文件描述符的数量。如果我们不对这个值进行优化那么我们将会经常看到too many connections错误。通常默认数值是100,我们可以将它修改为1024。
⑤record_buffer
每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果我们做很多顺序扫描则可能需要添加这个值。通常默认数值是131072(128k),我们可以把它修改为16773120(16m)
⑥sort_buffer
每个需要进行排序的线程分配该大小的一个缓冲区。增加sort_buffer这值加速orderby或groupby操作。通常默认数值是2097144(2m),我们可以把它修改为16777208(16m)。
⑦table_cache
为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。mysql对每个唯一打开的表需要2个文件描述符。通常默认数值是64,我们可以把它修改为512。
⑧thread_cache_size
可以复用的保存在中的线程的数量。如果有新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能我们可以使用这个变量值。通过比较connections和threads_created状态的变量,我们可以看到这个变量的作用。我们可以把它设置为80。
⑨mysql的搜索功能
用mysql进行搜索目的是能不分大小写,又能用中文进行搜索。我们只需起动mysqld时指定--default-character-set=gb2312
⑩wait_timeout
服务器在关闭它之前在一个连接上等待行动的秒数。默认数值是28800,我把它改为7200。
PS:参数的调整可以通过修改/etc/my.cnf文件并重启mysql实现。这是一个比较谨慎的工作,上面的结果也仅仅是我的一些看法,我们可以根据自己主机的硬件情况(特别是内存大小)进一步修改。
以上就是十个有效优化MySQL性能的参数的简单介绍,笔者相信大家对此都有一个基本的了解了吧。那么本次的讲解到此就暂告一段落,如果以后有什么相关的内容继续进行补充或者修改的话,笔者会在此继续进行相关的内容的补充或者修改的工作,同时也欢迎大家对本次的讲解提出自己的建议和补充。最后笔者希望本次的讲解对大家学习MySQL能够起到一定的帮助作用!
¥399.00
¥699.00
¥299.00
¥399.00