1、连接池大小设置
MySQL 最大连接数在5.7版本中默认是151, 最大可以达到16384(2^14);
查看当前连接数量:show status like 'Threads_connected';
查看连接池大小:show variables like '%max_connections%';
设置 :set global max_connections = 500;
flush privileges;
官网建议设置最大连接数比例:Max_used_connections / max_connections * 100% ≈ 85%
2、线程设置
注:免费版本不支持线程,例如:Server version: 5.7.16-log MySQL Community Server (GPL)
我使用的版本是:5.7
查看线程信息:show global status like 'thread%';
开启线程:set thread_handling = pool-of-threads;
2、保证从内存中读取数据
推荐将数据完全保存在 innodb_buffer_pool_size ,即按存储量规划 innodb_buffer_pool_size 的容量。这样你可以完全从内存中读取数据,最大限度减少磁盘操作。
SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool_pages_%';
3、定期重建数据库
mysqlcheck -o –all-databases 会让 ibdata1 不断增大,真正的优化只有重建数据表结构:
CREATE TABLE mydb.mytablenew LIKE mydb.mytable;
INSERT INTO mydb.mytablenew SELECT * FROM mydb.mytable;
ALTER TABLE mydb.mytable RENAME mydb.mytablezap;
ALTER TABLE mydb.mytablenew RENAME mydb.mytable;
DROP TABLE mydb.mytablezap;