大数据查询优化方案

1 存储过程
2 建索引
3 分区   把数据分成几个区存放,搜索的结果合并。做表分区,缩小查找范围(按一个有效字段分区,比如按月份)
4 表空间
5 我们以前大数据量的解决方案是:把数据分批查出来,一次性查出来是没有什么好的解决办法。
6 like 必定扫全表
7 硬件:升级服务器,有这么多数据的应该不是小的应用,应该买个好点的服务器。
8 用负载均衡,把一个大表争成几个小表(垂直分表,把表里面的一些不常用的大字段信息拿出来)

9 视图

10 读写分立,做双机,一个读,一个写

11 sql语句优化,这个注意点太多了,具体可以通过explain找出慢查询(plsql的F5)

12 表字段尽量小,尽量回避blob,text;varchar最好也少用

13 数据量达到海量的话,分布式集群处理了,······以下省略8000字

--查询优化

常见优化查询的方案有如下:

1,对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by 涉及的列上建立索引。

2,应尽量避免在where子句中进行null的判断,否则将导致查询放弃进行索引进行全表扫描。可以在null上设默认值为0。

3,尽量避免在where子句中使用or来连接条件,否则将导致查询放弃进行索引进行全表扫描,可以考虑使用union all替换。

4,in 和not in 要慎用,否则会导致全表扫描。能用between则不用in。

5,避免使用Like 来进行模糊查询,可以考虑使用全文检索。

6,尽量避免在where子句中使用!=或<>操作符,否则会导致全表扫描。

7,使用视图加速查询。

8,能用distinct 则不用group by。

9,能用union all 则不用union。

10,避免在where子句中进行函数操作。

猜你喜欢

转载自727668704.iteye.com/blog/2066345