优化 or 语句

mysql 演示数据库:http://downloads.mysql.com/docs/sakila-db.zip

对于 or  语句,如果要利用索引,则 or 之间的每个条件都必须有索引

rental 表索引情况

or查询的前后都有索引列---(使用到了索引)

explain select * from rental where staff_id=‘‘ or inventory_id=‘‘\G;

复合索引的列  ---(没有使用索引)

 explain select * from rental where rental_date=‘‘ or inventory_id=‘‘\G;

时间: 2024-10-11 15:41:08

优化 or 语句的相关文章

通过profile优化SQL语句

开启profile优化SQL语句:set profiling=1;执行SQL语句show profiles;show profile for query 2;//根据query_id 查看某个查询的详细时间耗费 SHOW STATUS LIKE 'last_query_cost';//查询上一条语句执行的代价 例: mysql> show profiles;+----------+------------+----------------------------------------+| Qu

Expert 诊断优化系列------------------语句调优

前面三篇通过CPU.内存.磁盘三巨头,讲述了如何透过现在看本质,怎样定位服务器三巨头反映出的问题.为了方便阅读给出链接: Expert 诊断优化系列------------------你的CPU高么? Expert 诊断优化系列------------------内存不够用么? Expert 诊断优化系列------------------冤枉磁盘了 通过三篇文章的基本介绍,可以看出系统的语句如果不优化,可能会导致三巨头都出现异常的表现.所以本篇开始介绍系统中的重头戏--------------

性能优化——SQL语句(续)

上篇博客介绍了一下自己在项目中遇到的一种使用sql语句的优化方式(性能优化--SQL语句),但是说的不够完整.在对比的过程中,没有将max函数考虑在内,经人提醒之后赶紧做了一个测试,测试过程中又学到了不少的东西.现给大家分享一下 上次用的是select count(*) 和select * 的执行效率问题,因为我的需求是获取数据的一个总数来自动给出新的id,然后网友给出可以使用max的方式给出新id.其实这也是一种不错的思路(当时我们也用过该函数,只不过因为系统数据本身问题,不适合用该函数),然

优化Select 语句的原则

优化Select 语句的原则 -摘抄<SQL Server 2005 性能监测与优化> Select 语句是数据库应用系统中最常用的语句之一,Select 语句设计的好坏直接影响到应用程序的工作性能. 在设计Select语句时,应该注意以下几种影响查询效率的情况: 1.  没有创建索引,或者没有正确地使用索引.这是最有可能影响数据库查询的原因之一.创建索引是优化数据库查询效率的重要手段. 2.  存在死锁的情况,从而导致Select语句挂起,无法返回结果集. 3.  返回不必要的列,很多程序员

ORACLE常用SQL优化hint语句

在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.

数据库调优教程(十二) 优化sql语句

五.           优化Sql语句 上一章讲了如何设计一张好的表,一张好的表自然需要好的sql语句去操作它.本章就来聊聊如何优化sql语句. 1.      Sql语句优化原则 优化需要优化的Query 定位优化对象性能瓶颈 从Explain入手 尽可能在索引中完成排序 只取自己需要的Column 尽可能避免复杂的join和子查询 2.     优化limit select * from test1 order by id limit 99999,10 原语句虽然使用了id索引,但是相当于

如何用 SQL Tuning Advisor (STA) 优化SQL语句

在Oracle10g之前,优化SQL是个比较费力的技术活,不停的分析执行计划,加hint,分析统计信息等等.在10g中,Oracle推出了自己的SQL优化辅助工具: SQL优化器(SQL Tuning Advisor :STA),它是新的DBMS_SQLTUNE包.使用STA一定要保证优化器是CBO模式下. 执行DBMS_SQLTUNE包进行sql优化需要有advisor的权限: SQL> create user dave identified by dave; 用户已创建. SQL> gra

应用索引技术优化SQL 语句一

一.前言 很多数据库系统性能不理想是因为系统没有经过整体优化,存在大量性能低下的SQL 语句.这类SQL语句性能不好的首要原因是缺乏高效的索引.没有索引除了导致语句本身运行速度慢外,更是导致大量的磁盘读写操作,使得整个系统性能都受之影响而变差.解决这类系统的首要办法是优化这些没有索引或索引不够好的SQL语句. 本文讨论和索引相关的有关内容,以及通过分析语句的执行计划来讲述如何应用索引技术来优化SQL 语句.通过分析执行计划,读者可以检查索引是否有用,以及如何创建高效的索引.本文对数据库管理人员以

应用索引技术优化SQL 语句三

六.有关索引的几个问题 问题1,是否值得在identity字段上建立聚集索引.答案取决于identity 字段如何在语句中使用.如果你经常根据该字段搜索返回很少的行,那么在其上建立索引是值得的.反之如果identity字段根本很少在语句中使用,那么就不应该对其建立任何索引. 问题2,一个表应该建立多少索引合适.如果表的80%以上的语句都是读操作,那么索引可以多些.但是不要太多.特别是不要对那些更新频繁的表其建立很多的索引.很少表有超过5个以上的索引.过多的索引不但增加其占用的磁盘空间,也增加了S

【转】 如何优化sql语句

============推荐============ csdn:http://blog.csdn.net/e3002/article/details/1817941 ====如何优化sql语句==== (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写 在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的 情况下,你必须选择记录条数最少的表作为基础表.如果有3个以上的