mysql性能优化
1.熟练使用explain
2.使用,并且正确使用索引
3.拒绝使用默认设置
默认情况下,mysql用于小规模的开发安装,而不是生产模式。
如下三个mysql性能优化设置
innodb_buffer_pool_size
:缓冲池用于存放缓存数据和索引。如果只运行innodb存储引擎,通常会将80%的内存分配给缓冲池。如果您正在进行非常复杂的查询,或者有大量的并发数据库连接,或大量的表,可能需要将此降低一个档次,以便为其他操作分配更多的内存。
简单的检查方法是查看Percona Monitoring and Management中的系统概述图中的交换活动
innodb_log_file_size
:这是单个innodb日志文件 的大小。日志文件的大小应该至少保持系统最佳运行所用空间大小的20%
MAX_Connections
:大型应用程序连接数通常需高于默认值。如果连接的熟练不足以满足您的应用程序的需要,那么您的应用程序将无法连接到数据库(在您的用户看来,这就像是停机时间)。正确处理这个变量很重要。。
通常确保应用程序使用的最大连接数与可用的最大连接数之间至少有30%的差距。
4.将数据库保存在内存中
5.使用SSD存储
可以使用专门为服务器工作负载设计的SSD,这种SSD会对数据起到保护作用(断电)。
注意:避免使用为太师计算机和笔记本电脑设计的商用SSD。
6.横向扩展
- 可以利用较小且成本较低的系统
- 通过横向扩展,进行线性扩展更快更容易
- 因为数据库分布在多台物理机器上,所以数据库不会受到单个硬件故障点的影响
mysql复制或percona XtraDB Cluster
percona为mysql数据库服务器进行了改进,在功能和性能上较mysql有着显著的提升。提供了在高负载情况下的Innodb的性能、为DBA提供一些非常有用的性能诊断工具。。
7.可观测性
监控工具
Mysql Enterprise Monitor
Monyog
Percona Monitoring and Management(PMM) 免费开源