当前位置: 首页 > article >正文

数据库性能优化三:程序操作优化

数据库优化包含以下三部分数据库自身的优化数据库表优化程序操作优化.此文为第三部分数据库性能优化三程序操作优化概述程序访问优化也可以认为是访问SQL语句的优化一个好的SQL语句是可以减少非常多的程序性能的下面列出常用错误习惯并且提出相应的解决方案一、操作符优化1. IN、NOT IN 操作符IN和EXISTS 性能有外表和内表区分的但是在大数据量的表中推荐用EXISTS 代替IN 。Not IN 不走索引的是绝对不能用的可以用NOT EXISTS 代替2. IS NULL 或IS NOT NULL操作索引是不索引空值的所以这样的操作不能使用索引可以用其他的办法处理例如数字类型判断大于0字符串类型设置一个默认值判断是否等于默认值即可3. 操作符不等于不等于操作符是永远不会用到索引的因此对它的处理只会产生全表扫描。 用其它相同功能的操作运算代替如 a0 改为 a0 or a0 a’’ 改为 a’’4. 用全文搜索搜索文本数据取代like搜索全文搜索始终优于like搜索(1)全文搜索让你可以实现like不能完成的复杂搜索如搜索一个单词或一个短语搜索一个与另一个单词或短语相近的单词或短语或者是搜索同义词;(2)实现全文搜索比实现like搜索更容易(特别是复杂的搜索);二、SQL语句优化1、在查询中不要使用 select *为什么不能使用地球人都知道但是很多人都习惯这样用要明白能省就省而且这样查询数据库不能利用“覆盖索引”了2. 尽量写WHERE子句尽量不要写没有WHERE的SQL语句3. 注意SELECT INTO后的WHERE子句因为SELECT INTO把数据插入到临时表这个过程会锁定一些系统表如果这个WHERE子句返回的数据过多或者速度太慢会造成系统表长期锁定诸塞其他进程。4.对于聚合查询可以用HAVING子句进一步限定返回的行5. 避免使用临时表(1)除非却有需要否则应尽量避免使用临时表相反可以使用表变量代替;(2)大多数时候(99%)表变量驻扎在内存中因此速度比临时表更快临时表驻扎在TempDb数据库中因此临时表上的操作需要跨数据库通信速度自然慢。6.减少访问数据库的次数程序设计中最好将一些常用的全局变量表放在内存中或者用其他的方式减少数据库的访问次数7.尽量少做重复的工作尽量减少无效工作但是这一点的侧重点在客户端程序需要注意的如下A、 控制同一语句的多次执行特别是一些基础数据的多次执行是很多程序员很少注意的B、减少多次的数据转换也许需要数据转换是设计的问题但是减少次数是程序员可以做到的。C、杜绝不必要的子查询和连接表子查询在执行计划一般解释成外连接多余的连接表带来额外的开销。D、合并对同一表同一条件的多次UPDATE比如UPDATE EMPLOYEE SET FNAME’HAIWER’ WHERE EMP_ID’ VPA30890F’UPDATE EMPLOYEE SET LNAME’YANG’ WHERE EMP_ID’ VPA30890F’这两个语句应该合并成以下一个语句UPDATE EMPLOYEE SET FNAME’HAIWER’,LNAME’YANG’WHERE EMP_ID’ VPA30890F’E、UPDATE操作不要拆成DELETE操作INSERT操作的形式虽然功能相同但是性能差别是很大的。F、不要写一些没有意义的查询比如SELECT * FROM EMPLOYEE WHERE 12三、where使用原则1)在下面两条select语句中:select * from table1 where field110000 and field10;select * from table1 where field10 and field110000;如果数据表中的数据field1都0,则第一条select语句要比第二条select语句效率高的多因为第二条select语句的第一个条件耗费了大量的系统资源。第一个原则在where子句中应把最具限制性的条件放在最前面。2)在下面的select语句中:select * from tab where a… and b… and c…;若有索引index(a,b,c)则where子句中字段的顺序应和索引中字段顺序一致。第二个原则where子句中字段的顺序应和索引中字段顺序一致。以下假设在field1上有唯一索引I1在field2上有非唯一索引I2。3) select field3,field4 from tb where field1sdf 快select * from tb where field1sdf 慢因为后者在索引扫描后要多一步ROWID表访问。select field3,field4 from tb where field1sdf 快select field3,field4 from tb where field1sdf 慢因为前者可以迅速定位索引。select field3,field4 from tb where field2 like R% 快select field3,field4 from tb where field2 like %R 慢因为后者不使用索引。4) 使用函数如select field3,field4 from tb where upper(field2)RMN不使用索引。如果一个表有两万条记录建议不使用函数如果一个表有五万条以上记录严格禁止使用函数两万条记录以下没有限制。

相关文章:

数据库性能优化三:程序操作优化

数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分 数据库性能优化三:程序操作优化 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少非常…...

Hermes Agent/OpenClaw怎么安装?2026年搭建及Coding Plan配置教程

Hermes Agent/OpenClaw怎么安装?2026年搭建及Coding Plan配置教程。还在为部署OpenClaw到处找教程踩坑吗?别再瞎折腾了!OpenClaw一键部署攻略来了,无需代码、只需两步,新手小白也能轻松拥有专属AI助理! ​…...

【卷卷观察】DeepSeek 融资:一个技术理想主义的现实困境

那个说"不差钱"的AI天才,还是向资本低头了。腾讯阿里疯抢,估值5天翻倍——这背后不是AI行业的胜利,是AI竞争的残酷现实。昨晚科技圈最大的瓜:DeepSeek 要融资了。消息一出,阿里美股盘前直接拉了2%。腾讯、阿…...

别光重启labelimg了!深入Python库目录,从根源搞定标注类别丢失和IndexError

深入Python库目录:从根源解决labelimg标注丢失与IndexError的技术侦探指南 当你第三次在深夜重启labelimg,却发现昨天标注的200张图片类别全部消失,命令行弹出刺眼的IndexError: list index out of range时,是时候放下鼠标&#x…...

红魔7s Pro变砖别慌!保姆级9008线刷救砖教程(附高通驱动+工具包)

红魔7s Pro变砖急救指南:从崩溃到重生的全流程解析 当你的红魔7s Pro突然变成一块"砖头",屏幕漆黑一片,按键毫无反应,那种瞬间涌上心头的焦虑感我完全理解。作为一名经历过无数次救砖操作的老玩家,我想告诉你…...

AI建站避坑指南:关于费用、效果与安全的10个高频问题解答

AI建站工具虽然方便,但毕竟是个新鲜事物。很多用户在尝试前,心里都充满了问号:“这东西靠谱吗?”“做出来的网站会不会很low?”“会不会有各种隐藏收费?”这篇文章,我们直接面对这些核心顾虑&am…...

告别配置地狱:在Windows上为乐视Astra Pro配置C++开发环境(VS2019 + PCL 1.12 + OpenCV 4.5)

告别配置地狱:在Windows上为乐视Astra Pro配置C开发环境(VS2019 PCL 1.12 OpenCV 4.5) 乐视Astra Pro作为一款性价比极高的三合一体感摄像头,在点云处理、深度视觉等领域有着广泛的应用前景。然而,许多开发者在搭建其…...

用这个免费网站,5分钟搞定城市路网SVG地图,做PPT和设计素材超方便

5分钟生成城市路网SVG地图:设计师的高效素材解决方案 在信息爆炸的视觉时代,一张简洁有力的城市路网图往往能成为设计作品的点睛之笔——无论是科技感十足的产品发布会PPT、地产项目的投资分析报告,还是社交媒体上的数据可视化信息图。传统获…...

反内卷全面来袭,中国经济大转型已经正式启动。全国上下都在减产,光伏、水泥、钢铁、猪肉、汽车纷纷减产,持续了30年的产能大扩张阶段正式结束,反内卷被推到了前所未有的高度。为什么会出现这样翻天覆地的变化?

反内卷全面来袭,中国经济大转型已经正式启动。全国上下都在减产,光伏、水泥、钢铁、猪肉、汽车纷纷减产,持续了30年的产能大扩张阶段正式结束,反内卷被推到了前所未有的高度。为什么会出现这样翻天覆地的变化?原因就在…...

如何让2007年旧Mac重获新生?OpenCore Legacy Patcher终极指南

如何让2007年旧Mac重获新生?OpenCore Legacy Patcher终极指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否有一台被苹果官方抛弃的旧Mac…...

终极指南:如何使用TegraRcmGUI轻松完成Switch RCM注入

终极指南:如何使用TegraRcmGUI轻松完成Switch RCM注入 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款专为Nintendo Switch设计…...

AI专著写作高效秘籍:借助AI工具,轻松搞定20万字专著撰写难题!

撰写学术专著的挑战与应对工具 撰写学术专著是一项不仅考验学术能力的工作,也对心理素质提出要求。与团队合作完成的论文不同,撰写专著通常是单干的模式。从选择课题、搭建框架到撰写内容及修改提升,各个步骤基本上都需要研究者一人完成。这…...

3分钟彻底解决JetBrains IDE试用期限制:ide-eval-resetter终极指南

3分钟彻底解决JetBrains IDE试用期限制:ide-eval-resetter终极指南 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 还在为JetBrains IDE试用期到期而烦恼吗?ide-eval-resetter是一款专门用…...

RWKV7-1.5B-world双语模型应用:国际学校双语教师备课助手——教案生成+中英双语例句

RWKV7-1.5B-world双语模型应用:国际学校双语教师备课助手——教案生成中英双语例句 1. 引言:双语教学的新助手 在国际学校的教学环境中,双语教师每天面临着一个共同的挑战:如何高效准备双语教案和教学材料。传统备课方式需要教师…...

GPU加速单细胞RNA测序分析:RAPIDS-singlecell技术解析

1. 项目概述单细胞RNA测序(scRNA-seq)已成为生物医学研究中最具突破性的技术之一。这项技术能够在单个细胞水平上解析转录组和表观基因组的变化,为研究人员提供了前所未有的生物学见解。随着技术进步,单细胞实验的规模和复杂度呈指…...

AI专著撰写高效法:AI工具加持,20万字专著迅速成型!

学术专著创作困境与AI工具助力 学术专著的创作并非易事,它不仅仅关乎能否完成写作,更重要的是能否实现出版和获得认可。在当前的出版市场上,学术专著吸引的读者群体相对较小,这使得出版社在评估选题的学术价值时变得格外严谨&…...

别再只用2D CNN处理视频了!深入浅出聊聊时空卷积网络(ST-CNN)的三大核心优势与部署陷阱

时空卷积网络实战指南:从模型优势到工业部署的深度解析 视频理解领域的技术迭代速度令人应接不暇,当大多数团队还在使用2D CNN配合LSTM处理时序信息时,ST-CNN(时空卷积网络)已经悄然成为工业界的新宠。三年前我在处理安…...

LM开源模型部署:支持LLM调用接口扩展,为后续Agent集成预留空间

LM开源模型部署:支持LLM调用接口扩展,为后续Agent集成预留空间 1. 平台介绍 LM是一个基于Tongyi-MAI/Z-Image底座的文生图镜像,专为角色、服饰、时尚人像和写实风格等图像生成场景优化。这个镜像已经完成了模型预加载和Web页面封装&#xf…...

新一代 Webshell 目标管理工具,支持免杀过 D 盾 PHP 全版本无感检测|支持屏幕、进程枚举、Servlet 内存马插件

0x01 工具介绍 【默连】新一代 Webshell 目标管理工具,支持免杀过 D 盾,PHP 全版本无感检测,可一键生成高隐匿载荷,轻松绕过主流安全防护。工具集 GUI 与 Web 双模式运行,支持目标分组、批量存活检测、代理配置与多协…...

终极跨平台Unity资产提取神器:5分钟上手AssetRipper完整指南

终极跨平台Unity资产提取神器:5分钟上手AssetRipper完整指南 【免费下载链接】AssetRipper GUI Application to work with engine assets, asset bundles, and serialized files 项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper AssetRipper是…...

Citra 3DS模拟器完整教程:如何在PC上免费畅玩任天堂3DS游戏

Citra 3DS模拟器完整教程:如何在PC上免费畅玩任天堂3DS游戏 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/gh_mirrors/cit/citra 想要在个人电脑上重温《精灵宝可梦》、《塞尔达传说》等任天堂3DS独占大作吗?Ci…...

终极Windows优化工具:如何用WinUtil一键解决系统管理和软件安装所有难题

终极Windows优化工具:如何用WinUtil一键解决系统管理和软件安装所有难题 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 你是否也…...

Aurora 8b/10b上板调试避坑指南:从单板自环到双板光口互联的完整流程

Aurora 8b/10b硬件调试实战:从单板自环到双板光口互联的全流程解析 在FPGA高速串行通信领域,Aurora 8b/10b协议因其简洁高效的特性,成为板间互联的常用方案。但将仿真环境中的设计部署到实际硬件时,工程师往往会遇到各种意料之外的…...

3步极速优化Windows 11:Win11Debloat彻底解决系统臃肿与隐私泄露

3步极速优化Windows 11:Win11Debloat彻底解决系统臃肿与隐私泄露 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declut…...

基于springboot 新能源充电桩报修管理系统

目录 同行可拿货,招校园代理 ,本人源头供货商功能模块划分技术实现要点扩展性设计 项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 同行可拿货,招校园代理 ,本人源头供货商 功能模块划分 用户管理模块 用户注册与登录&#xf…...

09-第七篇-批判、边界与未来

第七篇:AI Agent 批判、边界与未来 把外溢条件、制度成本和失效边界说清之后,讨论就该进一步收束。到了这一篇,判断的重心不再是继续展开,而是回答:哪些结论可被检验,哪些边界必须被承认,哪些风…...

nli-MiniLM2-L6-H768快速上手:无需GPU也可运行(CPU fallback),但推荐RTX 4090 D加速

nli-MiniLM2-L6-H768快速上手:无需GPU也可运行(CPU fallback),但推荐RTX 4090 D加速 1. 平台介绍 nli-MiniLM2-L6-H768 是一个轻量级自然语言推理(NLI)模型,专注于文本对关系判断、零样本文本…...

CVPR/ICCV/ECCV三大顶会论文怎么找?这份保姆级查找与下载指南请收好

计算机视觉顶会论文高效检索与下载实战指南 刚踏入计算机视觉研究领域的研究生们,常常面临一个看似简单却极为关键的挑战:如何在CVPR、ICCV、ECCV等顶级会议的海量论文中,快速找到自己需要的那篇文献?更棘手的是,当导师…...

Windows Cleaner终极秘籍:从根源解决C盘爆红问题的高效实战

Windows Cleaner终极秘籍:从根源解决C盘爆红问题的高效实战 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows系统卡顿、C盘空间告急的红色警告已…...

从理论到代码:用Python/Simulink复现积分滑模控制器(附抖振抑制对比)

从理论到代码:用Python/Simulink实现积分滑模控制的工程实践 在控制工程领域,滑模控制因其强鲁棒性而备受青睐,但传统方法面临的抖振问题和初始阶段鲁棒性缺失一直困扰着实践者。积分滑模控制通过创新性的设计,不仅解决了这两个痛…...