针对大数据量表的优化查询
来源:互联网 发布:笑郭网络验证 山寨 编辑:程序博客网 时间:2024/05/03 06:25
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 大数据查询优化的方案
- 雷军:手机将替代PC的两个半理由
- c 字符串处理函数
- 语法之动词
- C语言位操作
- JVM之一-总体框架
- 针对大数据量表的优化查询
- 从JVM Instructions看Java
- JavaScript 获取客户端计算机硬件及系统信息
- 《Android开发从零开始》——41.App_Widgets(1)
- instanceof 与isAssignableFrom
- CKeditor3.0 详细配置
- NLTK与DataWiki
- javaSwing 圣诞节倒计时
- 无需充电的号角式iPhone扬声器Megaphone