MySQL性能优化 - 别再只会说加索引了

?? 优质资源分享 ??

学习路线指引(点击解锁)

知识定位

人群定位

?? Python实战微信订餐小程序 ??

进阶级

本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。

??Python量化交易实战??

入门级

手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

MySQL性能优化

MySQL性能优化我们可以从以下四个维度考虑:硬件升级、系统配置、表结构设计、SQL语句和索引。

从成本上来说:硬件升级>系统配置>表结构设计>SQL语句及索引,然而效果却是由低到高。所以我们在优化的时候还是尽量从SQL语句和索引开始入手。

硬件升级

硬件升级这里不在过多赘述,升级更好配置的机器、机械硬盘更换为SSD等等。

系统配置优化

  1. 调整buffer_pool

通过调整buffer_pool使数据尽量从内存中读取,最大限度的降低磁盘操作,这样可以提升性能。查看buffer_pool数据的方法:

SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool_page_%'

可以看出总页数8192,空闲页数1024。

//查看buffer_pool大小
SELECT @@innodb_buffer_pool_size/1024/1024

innodb_buffer_pool_size默认为128M,理论上可以扩大到内存的3/4或4/5。我们修改mysql配置文件my.cnf,增加如下配置:

innodb_buffer_pool_size = 750M

然后重启MySQL。
2. 数据预热

默认情况下,某条数据被读取过一次才会被缓存在innodb_buffer_pool里。所以数据库刚刚启动,可以进行一次数据预热,将磁盘上的数据缓存到内存中去。

预热脚本:

SELECT DISTINCT
?CONCAT('SELECT ',ndxcollist,' FROM 

你可能感兴趣的:(面试,学习路线,阿里巴巴,java,java进阶,后端)