提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:董玉霞|2022-06-17 11:12:46.200|阅读 197 次
概述:本文将介绍常见的SQL 查询错误, 数据库管理工具Navicat for MySQL是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
本文将介绍常见的SQL 查询错误, 数据库管理工具Navicat for MySQL是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。
像大多数编程人员一样,数据库开发人员或多或少倾向于编写直接翻译给定请求的代码。大多数编程语言(包括 SQL)被设计为更易于人们阅读,这也导致了一个问题。为什么会有问题?所有编程语言都能比其他语言更快地执行某些操作。在关系数据库中,查询优化器用于分析 SQL 查询并确定称为查询计划的有效执行机制。优化器能为每个查询生成一个或多个查询计划,每个查询计划代表运行查询的一种可能方式。然后选择并使用最有效的查询计划来运行查询。事实证明,模仿请求语言的 SQL 很少是最有效的方法。
在常见的 SQL 查询错误系列的这一部分中,我们将探讨一个编写不佳的 SQL 语句的示例,并以提高效率的方式重写它。
在数据库开发人员的代码中反复出现的一个错误是将索引列传递给函数。为了说明,我们会对这个表运行一个查询,该表在 varchar customerName 列上有一个索引:
当要求检索名称以字母“R”开头的所有客户时,可能倾向于使用 LEFT() 函数返回 customerName 列的第一个字符:
不幸的是,将索引的 customerName 列传递给函数,查询引擎必须评估表中每一行的结果!
在关系数据库中,有一个术语源自 Search ARGument ABLE 的缩写,又名 SARGable。如果 DBMS 引擎可以利用索引来加速查询的运行,则查询中的条件(或谓词)被称为 SARGable。另一方面,未能成为 SARGable 的查询称为非 SARGable 查询。其效果类似于在没有索引的书中搜索特定术语,每次都从第一页开始,而不是跳到索引中标识特定页的列表。显然,这对查询时间有负面影响,因此查询优化的其中一个步骤是将此类条件转换为 SARGable。
若要将上述条件变为 SARGable 条件,我们需要避免在索引列上使用函数。为此,我们必须使用 Like 运算符,这个逻辑等效(和 SARGable)的查询来表达请求:
请注意,运行时间大大缩短。
更多有关Navicat for MySQL使用教程可点击查看,欢迎加入Navicat for MySQL技术交流QQ群:765665608。
Navicat for MySQL是管理和开发 MySQL 或 MariaDB 的理想解决方案。它是一套单一的应用程序,能同时连接 MySQL 和 MariaDB 数据库,并与 Amazon RDS、Amazon Aurora、Oracle Cloud、Microsoft Azure、阿里云、腾讯云和华为云等云数据库兼容。这套全面的前端工具为数据库管理、开发和维护提供了一款直观而强大的图形界面。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。
Navicat for OracleNavicat for Oracle是一套超强的Oracle数据库系统管理工具,包括数据模型工具、数据或结构同步、导入或导出、和报表,令维护数据的进程更容易。
Navicat PremiumNavicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢