SQL优化大全】的更多相关文章

转自: http://panshaobinsb.iteye.com/blog/1718233 http://yulimeander.blog.sohu.com/115850824.html 最近遇到了oracle sql优化的问题,找了一下,发现这文章实在不错,跟大家分享一下,如果以后有什么新的改进也会继续补充的. 1     前言… 2 2     总纲… 2 3     降龙十八掌… 3 第一掌 避免对列的操作… 3 第二掌 避免不必要的类型转换… 4 第三掌 增加查询的范围限制… 4 第四…
1. 优化SQL步骤 1. 通过 show status和应用特点了解各种 SQL的执行频率 通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extende d-status 命令获得. SHOW STATUS 可以根据需要显示 session 级别的统计结果和 global级别的统计结果. 如显示当前session: SHOW STATUS like "Com_%"; 全局级别:show global status;       以下几个参数对…
概要 优化的理由 1. 大小写对SQL语句的影响(ORACLE) 2. 尽量使用(NOT) EXISTS 替代( NOT)IN这样的操作 3. 在海量查询时尽量少用格式转换 4. 查询海量数据是,可以使用OPTIMIZER HINTS(ORACLE) 5. ORDER BY和GROPU BY 6. 对列的操作 7. 避免使用OR 8. 用IN来替换OR 9. FROM 10. WHERE 11. IS NULL或IS NOT NULL 12. SELECT子句中避免使用 ‘ * ‘ 13. 避免…
一.百万级数据库优化方案 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库. 备注.描述.评论之类的可以设置为 NULL,其他的,最好不要使用NULL. 不要以为 NULL 不需要空间,…
前几篇文章介绍了mysql的底层数据结构和mysql优化的神器explain.后台有些朋友说小强只介绍概念,平时使用还是一脸懵,强烈要求小强来一篇实战sql优化,经过周末两天的整理和总结,sql优化实战新鲜出炉, 大家平时学习和工作中,遇到的90% 的sql优化都会介绍到,介意篇幅过长,分成3篇文章哈. CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFA…
前言 SOL 优化并不简单,做好 SOL 优化需要掌握数据库体系结构.表和索引设计.高效 SOL法.高级 SOL 语法.多种优化工具等知识,甚至还得分析业务特点,以及了解优化器的缺点.只有建立 SOL 优化方法论体系,才能够迅速找到最适合的方法来优化 SOL ,从而解决由SOL 51 发的性能问题.接下来我会详解了 SOL 性能优化之道,相信读者定会受益良多 SQL 地位高 任何 IT 系统,数据都是核心,同时也是访问和展现的热点,脱离数据库的 IT 项目几乎不存在,甚至可以说几乎没有不需要进行…
1.概述 前面我们介绍了MySQL中怎么样通过索引来优化查询.日常开发中,除了使用查询外,我们还会使用一些其他的常用SQL,比如 INSERT.GROUP BY等.对于这些SQL语句,我们该怎么样进行优化呢?本节将针对这些SQL语句介绍一些优化的方法. 2.优化INSERT语句 当进行数据INSERT的时候,可以考虑采用以下几种优化方式:●如果同时从同一客户插入很多行,尽量使用多个值表的INSERT语句,这种方式将大大缩减客户端与数据库之间的连接.关闭等消耗,使得效率比分开执行的单个INSERT…
1.MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源 (如 CPU.RAM.I/O 等)的抢占以外,数据也是一种供许多用户共享的资源.如何保证数 据并发访问的一致性.有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素. 2.MySQL锁特性 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制,归纳表格如下: 存储引擎          锁类型 MyISAM MEMORY…
将业务语句翻译成SQL语句不仅是一门技术,还是一门艺术. 下面拿我们程序开发工程师最常用的ROW_NUMBER()分页作为一个典型案例来说明. 先来看看我们最常见的分页的样子: WITH CTE AS( SELECT ROW_NUMBER() OVER ( ORDER BY (A.CreateTime ) AS OrderNo , Table_A.ID , --主键 Table_A.其它字段 FROM Table_A WITH ( NOLOCK ) WHERE RecID = 220051) S…
1.选择最有效率的表名顺序(只在基于规则的优化器中有效): oracle的解析器按照从右到左的顺序处理 from 子句中的表名,from子句中写在最后的表(基础表driving table)将被最先处理,在 from 子句中包含多个表的情况下, 你必须选择记录条数最少的表作为基础表.如果有 3 个以上的表连接查询, 那就需 要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. 2.where子句中的连接顺序: oracle 采用自下而上的顺序解析w…