DEEPZONE

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 1026|ตอบกลับ: 0

Beaver 实践:实用的 MySQL 优化

[คัดลอกลิงก์]

10

กระทู้

10

โพสต์

32

เครดิต

Newbie

เครดิต
32
本文由Wern Ancheta和Deji Akala进行了同行评审。感谢所有 SitePoint 的同行评审者使 SitePoint 内容达到最佳状态! Pause Next Unmute Current Time 0:07 / Duration 2:00 Fullscreen 拥有现有应用程序的客户有时会要求我修复错误、通过加快应用程序速度来提高效率,或者向某些现有软件添加新功能。第一阶段是研究原始代码——所谓的逆向工程。对于 SQL 数据库,MySQL 执行了哪些 SQL 查询并不总是显而易见的——特别是如果这些查询是由框架或某种外部库生成的。 火热的性能指标,类似于汽车的速度测量 在本文中,我将专门讨论 MySQL 并提出一个常见的优化用例,如果有一天您遇到类似的问题,它可能会派上用场。 MySQL 允许您将所有查询保存到日志中。 要查看您保存的日志要压缩您的日志然而,在 MySQL 的控制台中查看日志并不那么方便,因为: 没有突出显示或格式选项 在运行并行进程所获得的庞大列表中很难找到有问题的查询。

由于我经常处理日志,我开发了一个名为“ Beaver MySQL logger ”的工具来优化并让用户更容易分析。使用此工具您可以: 打开/关闭日志记录 在漂亮的界面中查看日志 搜索日志 “解释”查询 清除日志 您可以看到下面 华人海外澳洲号码数据 的程序截图: 截屏 客户端优化项目示例 我的一位 Upwork 客户要求我帮助优化他们的活动列表页面,该页面加载速度太慢。 网格 打开日志记录后,我看到每个页面加载执行大约 680 个 SQL 查询。我发现每个查询都单独加载,导致每页有 100 个事件,每个事件另外加载如下: 结构 用户event表中的哪一行。 这意味着该表必须执行 500 个额外查询,这降低了效率并影响了整体性能。 如何修复它 将必要的值组合到单个查询中将减少所需的服务器工作负载量由于该项目是使用Yii框架开发的,因此可以使用以下枚举表来修复标准中的名称万岁!现在每个请求运行的查询数量将减少




进一步研究日志后,我还发现,对于应用程序中的每个菜单项,都会进行 SQL 查询来检查每个访问级别,如下所示: select level from acl where role_id = N and page_id = N 此访问级别检查每次页面加载会生成大约 150 个添加的查询!解决此问题的最简单方法是使用菜单小部件的缓存。 结论 在项目之前,页面加载需要1100ms。优化后,130ms。 日志系统具有多功能性,还可用于研究业务趋势或查找其他系统中的错误。通过遵循这个简单的过程,我们将 SQL 查询的数量从 650 个减少到 150 个。虽然这是一个很大的进步,但它还远非完美。 一般而言,更全面的 MySQL 优化指南可以在以下三篇文章中找到: 优化 MySQL 索引 优化MySQL配置 优化MySQL瓶颈 您的优化成功案例有哪些?有什么可以分享的吗?让我们知道! 分享此文章 基里尔·日尔诺夫 基里尔·日尔诺夫 Kirill 是一位位于俄罗斯圣彼得堡的全栈 Web 开发人员。

ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|DEEPZONE

GMT+7, 2024-9-17 02:31 , Processed in 0.040607 second(s), 18 queries .

Powered by Discuz! X3.5, Rev.3

Copyright © 2001-2021 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้