网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。1.对查询进行优化,要尽量避免全表扫描,首先应考虑...
分类:
数据库 时间:
2015-07-13 10:12:46
阅读次数:
201
提高数据库查询速度的几个思路 :1、缓存,在持久层或持久层之上做缓存;2、数据库表的大字段剥离,保证单条记录的数据量很小; 3、恰当地使用索引;4、必要时建立多级索引; 5、分析Oracle的执行计划,通过表数据统计等方式协助数据库走正确的查询方式,该走索引就走索引,该走全表扫描就走全表扫描; 6、表分区和拆分,无论是业务逻辑上的拆分(如一个月一张报表、分库)还是无业务含义的分区(如根据ID取模分...
分类:
数据库 时间:
2015-07-09 00:55:57
阅读次数:
140
有一点要注意的是即便建立了索引,如果sql功力不足,查询也是不走索引的。1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:sele...
分类:
数据库 时间:
2015-07-05 23:53:06
阅读次数:
151
oracle 优化or 更换in、exists、union几个字眼。测试没有问题!根据实际情况选择相应的语句是。假设指数,or全表扫描,in 和not in 应慎用。否则会导致全表扫描。select * from T_Pro_Product where bar_code = 'nnnmmm'...
分类:
数据库 时间:
2015-06-26 14:47:57
阅读次数:
147
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:[sql]view plaincopyselectidfromtwherenumisnu...
分类:
其他好文 时间:
2015-06-24 18:11:53
阅读次数:
104
1.全表扫描(table access full)的情况:a.where条件中如果有like,那么无论like后的字段是否加了索引或者是否有unique约束,都会有是全表扫描。这种情况消耗的IO比较高,一般都好几千以上。b.没有where条件,这种情况肯定是全表查询。2.通过rowid的表存取(Ta...
分类:
其他好文 时间:
2015-06-09 13:24:10
阅读次数:
122
在11g中,全表扫描可能使用direct path read方式,绕过buffer cache,这样的全表扫描就是物理读了。 在10g中,都是通过gc buffer来读的,所以不存在direct path read的问题。 direct path read较高的可能原因有: 1. 大量的磁盘排序操作...
分类:
其他好文 时间:
2015-06-08 16:37:11
阅读次数:
119
转载自:http://database.51cto.com/art/201407/445934.htm1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索...
分类:
数据库 时间:
2015-06-07 23:08:04
阅读次数:
201
HBase - Hadoop Database
hbase的设计思想来自于google的bigtable
主键:Row Key
主键是用来检索记录的主键,访问Hbase table 中的行,只有三种方式
通过单个Row Key 访问
通过Row Key 的range
全表扫描
列族:Column Family
列族...
分类:
其他好文 时间:
2015-06-03 09:59:11
阅读次数:
106
如果要指定查询的数据行数,在查询语句中使用limit子句,而不是获取所有数据行结果集,然后去掉没用的数据。 MYSQL有时会对没有having子句,带有limit关键字的查询进行优化: 1:如果用limit子句选择很少的行数据集,mysql会利用索引来代替全表扫描; 2:如果组合使...
分类:
数据库 时间:
2015-06-02 13:18:51
阅读次数:
169