0

0

MySQL 调优如何提高 Laravel 性能

PHPz

PHPz

发布时间:2024-07-29 21:16:19

|

1003人浏览过

|

来源于dev.to

转载

mysql配置调优是数据库专业人员和管理员实施的数据库管理的重要组成部分。它的目的是配置数据库以适应其硬件和工作负载。但在数据库管理领域之外,mysql 配置调优的用处很大程度上被忽视了。

我们假设 mysql 调优可以显着影响 web 应用程序的性能。如果我们能够展示mysql调优的价值,我们相信企业和组织可能会热衷于更大规模地结合这种实践。

如何提高 laravel 应用程序性能

通过调优提高应用程序性能最好通过解决以下领域的综合方法来实现:

  • 服务器资源 – cpu、内存、存储
  • 软件配置 – linuxnginx、php…
  • 数据库管理系统(dbms)配置 – mysql、postgresql
  • 优化数据库方案并更改索引
  • 优化应用程序 - 代码、查询、架构......

许多经验丰富的开发人员并不将数据库性能调优视为提高应用程序性能的机会,因为他们对此领域知之甚少。他们花费了大量时间来优化代码库,但已经达到了这样的地步:不再为投入的时间和精力带来有价值的结果。我们对 mysql 调优如何对流行开源 web 应用程序的性能产生积极影响的研究旨在向开发人员展示这一事实。

测试方法

我们对 laravel aimeos 的测试程序让我们可以使用种子数据来比较配置前后应用程序的性能。通过首先使用默认配置运行测试,我们获得了有价值的控制结果来与调整后的配置进行比较。

我们使用以下流程来准备和测试每个应用程序:

  1. 部署 laravel aimeos。
  2. 带有数据的种子数据库。
  3. 为 jmeter 准备测试。
  4. 运行测试 10 分钟 – 使用 blazemeter 性能测试平台进行 jmeter 测试。
  5. 调整 mariadb 配置 – 默认配置测试后,我们的设置保持不变,但 mariadb 针对工作负载、服务器资源和数据库大小进行了调整。
  6. 重新运行测试 – 使用 blazemeter 重复 jmeter 测试以调整配置。

测试期间我们在 github 上发布了 jmeter 测试、mysql 状态和 mysql 变量。

我们查看了哪些指标?

我们在本研究中查看的指标是:

零沫AI工具导航
零沫AI工具导航

零沫AI工具导航-AI导航新标杆,探索全球实用AI工具

下载
  1. 响应时间(延迟)是发送请求并在服务器端处理请求到客户端收到第一个字节之间的时间。这是让您深入了解服务器性能的重要指标。
  2. 每秒查询数 是衡量数据库服务器每秒执行多少查询的指标。
  3. cpu 利用率.

我们收集了cpu 利用率每秒查询数 指标来比较工作负载。

laravel 艾梅奥斯

aimeos laravel 是一个流行的电子商务 web 应用程序框架,用于创建在线商店、市场和 b2b 应用程序。借助 aimeos,用户可以为 laravel 创建 api 优先的电子商务商店,该商店可以扩展以支持超过 10 亿种商品。它有 30 多种语言版本,安装量超过 300,000 次。

测试设置

为了测试 aimeos,我们以 10 个用户开始测试,但由于默认配置无法完成测试,我们不得不减少用户数量。

我们在数据库中植入了 500 mb 数据。
我们的测试时间是10分钟。

我们使用:

  • 安装了 debian 11 作为操作系统的 aws ec2 实例 c5.xlarge,
  • apache 作为网络服务器,
  • mariadb 10.5 设置为默认配置,数据库大小 500 mb。

mysql配置

aimeos laravel 使用的配置如下:

laravel aimeos 500mb 的调整配置

query_cache_type=1
query_cache_size=134217728
query_cache_limit=16777216
query_cache_min_res_unit=4096
thread_cache_size=0
key_buffer_size=8388608
max_allowed_packet=1073741824
sort_buffer_size=2097152
read_rnd_buffer_size=262144
bulk_insert_buffer_size=8388608
myisam_sort_buffer_size=8388608
innodb_buffer_pool_chunk_size=134217728
innodb_buffer_pool_size=805306368
max_heap_table_size=16777216
tmp_table_size=16777216
join_buffer_size=8388608
max_connections=151
table_open_cache=2048
table_definition_cache=1408
innodb_flush_log_at_trx_commit=1
innodb_log_file_size=201326592
innodb_log_buffer_size=16777216
innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_thread_concurrency=0
innodb_purge_threads=4
optimizer_search_depth=0
thread_handling=pool-of-threads
thread_pool_size=2

测试结果

aimeos laravel 测试结果展示了默认配置和调整配置之间的显着性能改进。

mysql 的优化导致平均服务器响应时间显着改善,从 1.4 秒减少到 800 毫秒以下。

响应时间(延迟)下降了 42%,平均cpu 利用率下降了 86%,而每秒查询数增加了令人难以置信的 291%,从每秒 12 个查询增加到 35 个查询。

结果图表如下:

MySQL 调优如何提高 Laravel 性能响应时间(毫秒),aimeos 调整 mysql 配置与默认值
MySQL 调优如何提高 Laravel 性能cpu 利用率 (%),aimeos 调整 mysql 配置与默认值
MySQL 调优如何提高 Laravel 性能每秒查询数,aimeos 调整 mysql 配置与默认值

社区贡献者

我们与 initlab 公司的 laravel 开发者 gevorg mkrtchyan 和 sergey sinitsa 合作调查了这一问题,非常感谢他们的专业知识。

sergey 部署了 aimeos,gevorg 准备了用于播种数据库的代码。

结论

我们使用 aimeos laravel 的测试程序在配置数据库服务器配置后,在

响应时间(延迟)cpu 利用率每秒查询数方面显示出显着的改进。

响应时间(延迟)下降了 42%,而cpu 利用率下降了 86%。 aimeos laravel 500mb 中的每秒查询次数 增加了 291%。

总之,mysql 调优是数据库管理的一个重要方面,可以对 laravel 应用程序的性能产生重大影响。性能不佳的 web 应用程序可能会导致页面加载时间增加、请求处理缓慢以及用户体验不佳,从而对 seo 和销售产生负面影响。通过使用 mysql 调优优化 web 应用程序的性能,企业和组织可以提高销售额、浏览量、转化率和 seo 排名。

通过这项研究,我们希望展示 mysql 调优作为提高 laravel 应用程序性能的一种手段的价值,并鼓励 laravel 开发人员在优化应用程序性能时考虑这种做法。

使用 releem 等工具,可以自动配置数据库以获得最佳性能,减轻软件开发团队的负担。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

340

2024.04.09

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

293

2024.04.09

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

773

2024.04.09

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

385

2024.04.10

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

141

2025.08.05

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

85

2025.08.05

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

80

2025.08.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

566

2026.03.04

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.5万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 850人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号