数据库优化相当危险,建议做好备份后在做优化。
1、使用 InnoDB 存储引擎
下面是如何在你的表上去转换存储引擎的命令:
ALTER TABLE table_name ENGINE=InnoDB;
为提高数据性能,做好索引的创建和规划
2、 配置 InnoDB 使用所有的内存
让数据库使用更多的内存,公认的“经验法则”是设置为服务器物理内存的 80%。
innodb_buffer_pool_size = 25600M
3、 让 InnoDB 多任务运行
如果服务器上的参数 innodb_buffer_pool_size 的配置是大于 1 GB,将根据参数 innodb_buffer_pool_instances 的设置, 将 InnoDB 的缓冲池划分为多个。
拥有多于一个的缓冲池的好处有:
在多线程同时访问缓冲池时可能会遇到瓶颈。你可以通过启用多缓冲池来最小化这种争用情况:
对于缓冲池数量的官方建议是:
为了实现最佳的效果,要综合考虑 innodb_buffer_pool_instances 和 innodb_buffer_pool_size 的设置,以确保每个实例至少有不小于 1 GB 的缓冲池。
例如:将参数 innodb_buffer_pool_size 设置为 25 GB 的拥有 32 GB 物理内存的服务器上。一个合适的设置为 25600M / 24 = 1.06 GB
innodb_buffer_pool_instances = 24