当前位置: 首页 > 科技观察

简化语句,让你的MySQL更有效

时间:2023-03-19 19:16:57 科技观察

【独家翻译】快速提升扩展性的简易教程通过几个简单的规则,我们就可以轻松提升MySQL服务器的扩展性。以下是示例之一。“改进SQL语句最有效的方法是减少它们。”减少SQL语句的方法有很多,但在列举客户观察到的典型例子之前,请允许我解释一下提高可扩展性的基本前提条件。MySQL的核心只允许物理进程在给定的时间段内(例如每秒)运行一定数量的SQL语句。无论您的计算机多么强大,此物理过程始终存在上限。如果你能精简SQL语句中非关键或必要的部分,那么同时,真正重要的SQL语句会自动优先排序。当然,这也会带来一些其他的连锁反应,但这只是简单数学范围内的小问题。简而言之,要运行更多的SQL命令,首先要精简你的命令。这里我们举一个简单的例子来分析TCP/IP数据包,并通过mk-query-digest工具输出结果。#RankQueryIDResponsetimeCallsR/CallApdxV/MItem#======================================================================.00061.000.00SELECTTTD中存在很多问题,包括SQL的一次一次(RAT)特性,但这里不讨论ping过大的问题。首先让我们看一下第一个声明。SELECT`Date`FROMTTDODWHEREID=9999;表面上这条查询命令足够简洁,但是我们再看一下列表。mysql>selectcount(*)fromTTDOD;+----------+|计数(*)|+----------+|0|+----------+在这种情况下,查询命令将不会返回任何内容,因为当前列表为空。当然这在未来可能会改变,但目前这更多的是简单数据管理中的异常处理状态,因为这个列表中的项目会很少。相反,构建一个有针对性的解决方案来通知应用程序可以完全避免这种不必要的查询。以上只是一个运行时间小于2秒的参考例子,清除第一条查询指令,整体查询耗时减少了20%。无论这只是一个典型的加载过程还是批处理中的并行加载过程,原理都是一样的。而毫无疑问,在接下来的查询指令中,我们的精简工作大有可为。原文地址:http://ronaldbradford.com/blog/simple-lessons-in-improving-scalability-2011-02-16/【编辑推荐】十条MySQL省时命令MySQL数据库分区管理细节决定成败减少锁竞赛减少MySQL用户等待时间分析MySQL数据碎片的产生如何解决IBatis.net与MySQL的连接问题