针对大数据量表的优化查询
来源:互联网 发布:axure 8.0 for mac 编辑:程序博客网 时间:2024/04/30 08:26
1:索引,我们最先想到的就是创建索引,创建索引可以成倍的提升查询的效率,节省时间。但是如果数据量太过于巨大的时候,这个时候单纯的创建索引是无济于事的,我们知道假如特别是在大数据量中统计查询,就拿1000W数据来说吧,如果使用count函数的话,最少要50-100秒以上,当然如果你的服务器配置够高,处理够快,或许会少很多但是一样会超过10秒。
单纯的建立索引是无济于事的。我们可以在创建索引的时候给索引加个属性,compress,这个属性可以将所创建的索引进行一个良好的归类,这样的话,查询速度会提升5-10倍,或者更高。但是唯一的缺点是,压缩索引只能手动创建,对于那些KEY是无法进行压缩的,因为KEY(主键)是自动创建的索引,compress必选的属性,一般默认是不创建。所以在创建压缩索引的时候,可以找其他的关键字段进行压缩,比如工单表里面的流水号
2:尽量少的使用那些函数,比如 IS NUll;IS NOT NULL,IN;NOT IN等这样的匹配函数,可以使用符号程序进行操作
3:尽量少使用子查询,如果你写个类,里面模仿子查询的效果,你就会发现,简直在要命,我们可以使用联合查询,或者是外连接查询,这样速度会比子查询快很多。
4:在使用索引的时候,注意如下:
Where子句中有“!=”将使索引失效
select account_name from test where amount != 0 (不使用)
select account_name from test where amount > 0 (使用)
Where条件中对字段增加处理函数将不使用该列的索引
select * from emp where to_char(hire_date,'yyyymmdd')='20080411' (不使用)
select * from emp where hire_date = to_char('20080411','yyyymmdd') (使用)
避免在索引列上使用IS NULL和 IS NOT NULL
select * from emp where dept_code is not null (不使用)
select * from emp where dept_code > 0 (使用)
通配符% 的使用
select * from emp where name like '%A' (不使用索引)
select * from emp where name like 'A%' (使用索引)
单纯的建立索引是无济于事的。我们可以在创建索引的时候给索引加个属性,compress,这个属性可以将所创建的索引进行一个良好的归类,这样的话,查询速度会提升5-10倍,或者更高。但是唯一的缺点是,压缩索引只能手动创建,对于那些KEY是无法进行压缩的,因为KEY(主键)是自动创建的索引,compress必选的属性,一般默认是不创建。所以在创建压缩索引的时候,可以找其他的关键字段进行压缩,比如工单表里面的流水号
2:尽量少的使用那些函数,比如 IS NUll;IS NOT NULL,IN;NOT IN等这样的匹配函数,可以使用符号程序进行操作
3:尽量少使用子查询,如果你写个类,里面模仿子查询的效果,你就会发现,简直在要命,我们可以使用联合查询,或者是外连接查询,这样速度会比子查询快很多。
4:在使用索引的时候,注意如下:
Where子句中有“!=”将使索引失效
select account_name from test where amount != 0 (不使用)
select account_name from test where amount > 0 (使用)
Where条件中对字段增加处理函数将不使用该列的索引
select * from emp where to_char(hire_date,'yyyymmdd')='20080411' (不使用)
select * from emp where hire_date = to_char('20080411','yyyymmdd') (使用)
避免在索引列上使用IS NULL和 IS NOT NULL
select * from emp where dept_code is not null (不使用)
select * from emp where dept_code > 0 (使用)
通配符% 的使用
select * from emp where name like '%A' (不使用索引)
select * from emp where name like 'A%' (使用索引)
- 针对大数据量表的优化查询
- 针对大数据量表的优化查询
- 针对大数据量表的优化查询
- 大数据量表的优化查询 - 发条
- 大数据量表的优化查询
- 大数据量表的复杂查询
- LBS中从数据库查询某经纬度2KM范围内的数据 - 针对大数据量的性能优化
- LBS中从数据库查询某经纬度2KM范围内的数据 - 针对大数据量的性能优化
- LBS中从数据库查询某经纬度2KM范围内的数据 - 针对大数据量的性能优化
- LBS中从数据库查询某经纬度2KM范围内的数据 - 针对大数据量的性能优化
- Oracle中大数据量表的管理
- 针对MySQL提高百万条数据的查询速度优化
- 针对大数据高并发站点的优化
- 针对大表单数据提交的优化方案
- MySQL大数据量表根据非索引字段检索优化
- MySQL中针对大数据量常用技术:查询优化,数据转移
- MySQL中针对大数据量常用技术:查询优化,数据转移
- oracle 大数据查询优化的方案
- ORACLE的锁机制
- 游戏开发笔记的链接
- windows XP下 iverilog+GTKWave使用(三)
- Base knowledge of audio
- ORACLE 11g R2 64位备份恢复到ORACLE 11g R2 32位 问题处理
- 针对大数据量表的优化查询
- 泰泽逐渐成为HTML5领域的领先者 - Tizen pops up as HTML5 winner
- 密码框显示和隐藏
- eMMC简介
- 黑马程序员,延迟加载的单例设计模式
- Linux 环境变量
- Android的系统架构认识
- CRC码校验纠错原理
- 黑马程序员,简单的卖票程序。 多个窗口同时买票。