Tối ưu hóa MySql trên VPS bằng công cụ Mysqltuner

1. Tối ưu hóa hiệu xuất câu lệnh Mysql với Mysqltuner :

MySQL Tuner Script là giải pháp cho trường hợp này. Nó được viết trên Perl, chức năng chính là phân tích MySQL server, sau đó đưa ra các cấu hình đề nghị trên thông số thu được. Do đó, MySQL Tuner có thể cải thiện được hiệu suất làm việc của server tong bất kỳ trường hợp nào.

Câu lệnh cài đặt :

cd /usr/local/bin
wget http://mysqltuner.pl/mysqltuner.pl
chmod +x mysqltuner.pl
./mysqltuner.pl


Truy cập quyền 'root' trong Mysql :

mysql -uroot -p


Cập nhật thông số theo mysqlTuner :

mysql> SET GLOBAL query_cache_size=1024*1024*16;


Xem thông số đã thiết lập :

mysql> SHOW GLOBAL VARIABLES LIKE 'query_cache%';


2. Tối ưu hóa các thiết lập trong Mysql :

Sử dụng lệnh truy cập, chỉnh sửa tệp tin '/etc/my.cnf' :

vi /etc/my.cnf


Tạo các thay đổi sau phù hợp với máy chủ :

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
local-infile=0

#ignore_builtin_innodb
innodb_file_per_table=1
default_storage_engine=MyISAM
skip-external-locking
query_cache_limit=1M
query_cache_size=32M ## 32MB for every 1GB of RAM
max_user_connections=200
max_connections=500
thread_cache_size=128
key_buffer_size=64M ## 128MB for every 1GB of RAM
join_buffer=1M
max_connect_errors=20
max_allowed_packet=8M
table_open_cache=256
sort_buffer_size=1M ## 1MB for every 1GB of RAM
read_buffer_size=1M ## 1MB for every 1GB of RAM
read_rnd_buffer_size=1M ## 1MB for every 1GB of RAM
thread_concurrency=2 ## Number of CPUs x 2
myisam_sort_buffer_size=64M
net_buffer_length = 8K

collation-server=utf8_unicode_ci
character_set_server=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
open_files_limit=8192

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[myisamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[mysqlhotcopy]
interactive-timeout

[client]
default-character-set=utf8


Sau khi hoàn tất các bạn khởi động lại Mysql :

/etc/init.d/mysqld restart


hoặc

service mysqld restart


Với các thiết lập trên hệ thống Mysql của bạn cũng đã được giảm tải 40% hiệu xuất của hệ thống. Ngoài ra các bạn hãy tìm hiểu thêm để config hệ thống tốt nhất cho máy chủ của bạn.

Chúc các bạn thành công !
Mr.Vinh