linux mysql 性能提高,高手心得:提高MySQL性能的方法

lgms2008 于 2006-09-20 00:18:05发表:

5. NOT

我们在查询时经常在where子句使用一些逻辑表达式,如大于、小于、等于以及不等于等等,也可以使用and(与)、or(或)以及not(非)。NOT可用来对任何逻辑运算符号取反。下面是一个NOT子句的例子:

... where not (status ='VALID')

如果要使用NOT,则应在取反的短语前面加上括号,并在短语前面加上NOT运算符。NOT运算符包含在另外一个逻辑运算符中,这就是不等于(<>;)运算符。换句话说,即使不在查询where子句中显式地加入NOT词,NOT仍在运算符中,见下例:

... where status <>;'INVALID'

再看下面这个例子:

select * from employee where salary<>;3000;

对这个查询,可以改写为不使用NOT:

select * from employee where salary<3000 or salary>;3000;

虽然这两种查询的结果一样,但是第二种查询方案会比第一种查询方案更快些。第二种查询允许Oracle对salary列使用索引,而第一种查询则不能使用索引。

6. IN和EXISTS

有时候会将一列和一系列值相比较。最简单的办法就是在where子句中使用子查询。在where子句中可以使用两种格式的子查询。

第一种格式是使用IN操作符:

... where column in(select * from ... where ...);

第二种格式是使用EXIST操作符:

... where exists (select 'X' from ...where ...);

我相信绝大多数人会使用第一种格式,因为它比较容易编写,而实际上第二种格式要远比第一种格式的效率高。在Oracle中可以几乎将所有的IN操作符子查询改写为使用EXISTS的子查询。

第二种格式中,子查询以‘select 'X'开始。运用EXISTS子句不管子查询从表中抽取什么数据它只查看where子句。这样优化器就不必遍历整个表而仅根据索引就可完成工作(这里假定在where语句中使用的列存在索引)。相对于IN子句来说,EXISTS使用相连子查询,构造起来要比IN子查询困难一些。

通过使用EXIST,Oracle系统会首先检查主查询,然后运行子查询直到它找到第一个匹配项,这就节省了时间。Oracle系统在执行IN子查询时,首先执行子查询,并将获得的结果列表存放在在一个加了索引的临时表中。在执行子查询之前,系统先将主查询挂起,待子查询执行完毕,存放在临时表中以后再执行主查询。这也就是使用EXISTS比使用IN通常查询速度快的原因。

同时应尽可能使用NOT EXISTS来代替NOT IN,尽管二者都使用了NOT(不能使用索引而降低速度),NOT EXISTS要比NOT IN查询效率更高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux单独编译设备树,迅为IMX6Q开发板-非设备树内核-单独编译内核驱动

内核驱动不仅可以将驱动编译到内核中&#xff0c;还可以动态的编译内核驱动。本文档介绍如何以模块的方式编译内核驱动。要动态的编译内核&#xff0c;首先需要将内核源码编译通过&#xff0c;内核的编译请参考使用手册第五章。9.5.2.1 内核和编译器路径本节介绍内核路径、编译…

linux+top+常用参数,linux的top命令参数详细说明

Linux中的top命令是个常用的命令之一&#xff0c;下面由学习啦小编为大家整理了Linux的top命令参数详细说明&#xff0c;希望对大家有帮助!linux的top命令简介top命令是Linux下常用的性能分析工具&#xff0c;能够实时显示系统中各个进程的资源占用状况&#xff0c;类似于Windo…

linux中常用名词解释,科学网—linux中常见名词解释 - 武海丹的博文

Shell&#xff1a;是系统的用户界面&#xff0c;提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器&#xff0c;它解释由用户输入的命令并且把它们送到内核。(当用户发出指令&#xff0c;其实先将这些指令发送给…

linux学习手册,Linux命令学习手册-ps

ps [选项]功能察看运行进程。举例显示所有进程$ps aux输入之后&#xff0c;输出如下&#xff1a;USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.1 3056 876 ? Ss 09:16 0:01 /sbin/initroot 2 0.0 0.0 0 0 ? S< 09:16 0:00 [kthreadd]root 2289 0.…

linux c 封装redis,封装hiredis——C++与redis对接(一)(string的SET与GET操作)

redis&#xff0c;总想着像Mysql一样&#xff0c;在C/C中进行对接。于是查询了一些资料&#xff0c;最后找到了hiredis。然而直接用它的话&#xff0c;难免有点不方便。于是&#xff0c;对其进行封装。hiredis直接去git上克隆&#xff0c;地址&#xff1a;https://github.com/r…

win8关闭uefi+linux,UEFI启动是什么?Win8关闭UEFI引导方式的方法

UEFI启动是什么?不少新电脑都给用户直接预装了Win8系统&#xff0c;后来使用又非常不习惯&#xff0c;因此想改成Win7系统&#xff0c;但是在换系统之前&#xff0c;需要在BIOS下关闭UEFI引导方式&#xff0c;可能很多朋友都不懂该如何关闭UEFI启动项。针对这个问题&#xff0…

C语言求x和y的乘积,计算方程式,求x,C语言中怎么计算x,y的值?

导航&#xff1a;网站首页 >计算方程式,求x,C语言中怎么计算x,y的值&#xff1f;计算方程式,求x,C语言中怎么计算x,y的值&#xff1f;匿名网友:(x-1)0吧&#xff0c;写题也这么不仔细呀。哈哈m/xn/(x-1)因为mn≠0&#xff0c;所以m≠0;n≠0&#xff1b;所以方程两边取倒数得…

c语言的单行注释范围,c语言中的注释,multi-line comment

在C/C语言中&#xff0c;在对源文件做预处理的时候&#xff0c;有两条基本原则&#xff1a;1、凡是以//开头的为单行注释2、凡是以\结尾的代表此行尚未结束于是预处理器在处理的时候会先按第二条规则&#xff0c;看每行的末尾的那个字符是不是”\”,是的话&#xff0c;就下一行…

c语言自动拷贝u盘文件,写了一个偷偷拷贝老师U盘所有文件的程序……蛋疼……………...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼直接双击运行&#xff0c;程序会每一秒检查一下是否有移动盘插入&#xff0c;如果有&#xff0c;就在C盘下新建一个文件夹copy&#xff0c;并把移动盘内所有的文件拷贝到C:\copy下。拷贝完成后自动退出。我想也没哪个老师会蛋疼的去…

android listview自动加载更多,如何实现 Android ListView『上拉加载更多』?

ListView上拉加载更多的UI需求(1)向上滑动 ListView&#xff0c;当最后一个条目滚入屏幕时开始加载更多条目&#xff0c;在列表底部增加一个 footerView&#xff1a;一个 infinite progressBar&#xff0c;一个 textView 显示 “Loading...”&#xff1b;(2)根据数据加载的结果…

android webview 字体 系统字体大小,Android 系统字体大小动态改变,导致webview中显示不兼容的问题解决...

唠叨几句&#xff1a;在移动端再开发的过程中&#xff0c;很容易使用到webview,它也是用来混合开发的中间桥梁&#xff0c;因此解决webview使用过程中出现的问题是非常有必要的&#xff1b;问题现象与发现&#xff1a;现象&#xff1a;日前&#xff0c;在是使用webview加载html…

android安全性发展,Android未来发展 安全是重点

自2008年首部Android手机问世以来&#xff0c;谷歌智能手机方面的发展也开始高歌勇进&#xff0c;经过近8年的发展&#xff0c;Android已经成为市场上最大的移动互联网操作系统&#xff0c;市场占有率位居第一&#xff0c;虽然其竞争对手iOS步步紧逼&#xff0c;但是由于Androi…

android 字符串调用方法名,AndroidJNI.CallStringMethod 调用字符串方法

AndroidJNI.CallStringMethod 调用字符串方法static function CallStringMethod (obj : IntPtr, methodID : IntPtr, args : jvalue[]) : stringDescription描述Calls an instance (nonstatic) Java method defined by methodID, optionally passing an array of arguments (ar…

android 服务器返回302,Android WebView 内处理302重定向不跳转的解决

最近项目中Webview加载第三方的具有302的重定向&#xff0c;但是却发现却没有重新跳转。最后发现问题如下&#xff1a;public boolean shouldOverrideUrlLoading(WebView view, String url) {super.shouldOverrideUrlLoading(view, url);.................return true&#xff…

c语言输入一个数求因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#includemain(){int n,q,p,m,k1,sum0,s[99999]{2},t[99999];//n是输入的数;q和p分别代表两个数组的工作下标scanf("%d",&n); //k是用来取小于n数的数组工作下标for(int i3;i<n;i2) //去所有小于n的数&…

android手机rom简单制作教程,【图片】ROM助手:任意安卓机型的ROM制作教程【a298t吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼很多机友都在求精简系统&#xff0c;求ROOT等等....但不会怎么办&#xff1f;我来告诉大家一个完美无缺的办法&#xff01;授人以鱼不如授人以渔......蘑菇ROM助手&#xff1b;点击系统精简&#xff0c;导入刷机包。之后我们可以看…

android 邮件分享链接,Android应用从通过电子邮件发送的链接打开

我们的用户不时收到电子邮件.更改密码当他们点击链接时,我想将它们发送到我们的网站,但我们的Android应用程序被打开.链接例如是https://www.ourdomain.com/change-password/{random-string}.我们的应用程序中已经启用了深层链接,但配置方式如下&#xff1a;android:host"…

android excel布局,Android实现仿excel数据表格效果

在没给大家分享代码之前&#xff0c;先给大家展示下效果图&#xff1a;1.activity/*** 采购需求* Created by Administrator on 2016/10/13.*/public class PurchaseRequireActivity extends BaseActivity implements PurchaseRequireView {Bind(R.id.appTitle)TextView appTit…

android 页面整体滑动,ScrollView 实现页面整体滑动

页眉整体垂直方向滑动&#xff0c;xml文件较为简单&#xff0c;只需要在需要滑动的布局文件中包裹一层ScrollView就可以实现。示例&#xff1a;xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http://schemas.android.com/tools"android:…

首款搭载鸿蒙os的设备,华为发布会配件汇总,首款搭载 鸿蒙OS 的设备来了

2020 年 10 月 30 日&#xff0c;华为召开 Mate40 系列发布会&#xff0c;正式发布 Mate40 系列手机。除了手机&#xff0c;本次发布会还发布了华为 Watch GT2 Pro 手表、华为 Sound 音箱等配件。以下是详细情况&#xff1a;华为智选智能摄像头 Pro该设备是首款搭载 HarmonyOS …