1. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 比如:select name from user where id >3000; 我们可以考虑给id建立索引,加快查询速度. 但是应该注意几个问题. (1) 应尽量避免在 where 子句 ...
分类:
数据库 时间:
2018-02-22 21:42:06
阅读次数:
158
最近想来,大数据相关技术与传统型数据库技术很多都是相互融合、互相借鉴的。传统型数据库强势在于其久经考验的SQL优化器经验,弱势在于分布式领域的高可用性、容错性、扩展性等,假以时日,让其经过一定的改造,比如引入Paxos、raft等,强化自己在分布式领域的能力,相信一定会在大数据系统中占有一席之地。相 ...
分类:
数据库 时间:
2018-02-21 11:41:39
阅读次数:
236
昨天在QQ群里讨论一个SQL优化的问题,语句大致如下: 于是手动测试,环境采用Oracle自带的scott用户下的emp表。 1.首先查看如下语句的执行计划(此时表只有主键索引): 2.添加IX_TEST(deptno,comm)后查看执行计划: 发现依然是全表扫描。 3.为deptno列添加非空约 ...
分类:
数据库 时间:
2018-02-07 15:05:44
阅读次数:
241
Oracle数据库里SQL优化的终极目标就是要缩短目标SQL语句的执行时间。要达到上述目的,我们通常只有如下三种方法可以选择:1、降低目标SQL语句的资源消耗。2、并行执行目标SQL语句。3、平衡系统的资源消耗。方法1:a、在不更改业务逻辑的情况下改写SQL来降低目标SQL语句的资源消耗。 b、不改 ...
分类:
数据库 时间:
2018-02-06 01:17:48
阅读次数:
178
前言 注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础。 优化目标 1.减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要 ...
分类:
数据库 时间:
2018-02-04 18:09:19
阅读次数:
172
比较全面的MySQL优化参考(上篇) 发表回复 本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有... ...
分类:
数据库 时间:
2018-02-03 18:57:50
阅读次数:
185
1、选择最有效率的表明顺序 Oracle采用从右往左的顺序解析from子句中的表名,写在from子句后面的表将被优先处理。 2、where子句的链接顺序 Oracle采用自下而上的顺序解析where子句,所以表之间的链接要写在where之前,能过滤掉大量记录的条件写在where的末尾。 3、sele ...
分类:
数据库 时间:
2018-01-17 12:36:24
阅读次数:
211
原文:SQL SERVER中隐式转换的一些细节浅析其实这是一篇没有技术含量的文章,精通SQL优化的请绕道。这个缘起于在优化一个SQL过程中,同事问了我一个问题,为什么SQL中存在隐式转换,但是执行计划没有变? 我思索了一下,觉得这个问题也有点意思,说不定有些对隐式转换了解得不深入的同学都有此疑问,那... ...
分类:
数据库 时间:
2018-01-15 20:29:14
阅读次数:
158
转载:https://www.cnblogs.com/wardensky/p/4569133.html SQL优化准则 SQL执行计划 在mysql命令行中,执行explain命令可以看到sql执行计划,如下图所示: ID Id:包含一组数字,表示查询中执行select子句或操作表的顺序 selec ...
分类:
数据库 时间:
2018-01-10 15:47:22
阅读次数:
305
应尽量避免在where中使用!=或<>操作符。否则会进行全表查询 对于查询,避免全盘扫描,考虑在where或order by涉及到的列上建立索引 避免在where中进行null值判断,否则会进行全表扫描 查询时,避免*查询全部,按要求指定的查 In和not in也要慎用,否则会导致全表扫描 不要写一 ...
分类:
数据库 时间:
2018-01-08 13:30:17
阅读次数:
168