百万数据查询优化1.合理使用索引 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如下: ●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。 .....
分类:
数据库 时间:
2015-06-01 09:36:41
阅读次数:
235
概述该篇主要介绍一些常用的sql优化技巧sql优化1.select * from table_name where;建议将*改为需要的列。这对速度不会有明显的影响,主要考虑节省内存。2.like语句一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。3.不要在列上进行运算,无法运用索引select * f...
分类:
数据库 时间:
2015-05-31 18:33:03
阅读次数:
212
分组函数
什么是分组函数?
分组函数作用于一组数据,并对一组数据返回一个值
组函数的类型
lAVG
lCOUNT
lMAX
lMIN
lSUM
数值求和
SQL> --求员工工资总额
SQL> select sum(sal) from emp;
SUM(SAL) ...
分类:
数据库 时间:
2015-05-30 09:25:18
阅读次数:
301
最近在线上发现很多性能有问题的sql,开发写sql语句的时候,没充分考虑是否用上索引了,所以这个坑得DBA来填,好了,废话不多说,把一些线上的优化经验跟大家分享。由于是线上的表,所以就不公开具体的表结构了,请大家体谅,我会模拟一个类似的表来说明当时的性能问题:当时的表结构类似此表:mysql> sh...
分类:
数据库 时间:
2015-05-29 13:33:36
阅读次数:
201
最近有个SQL运行时长超过两个小时,所以准备优化下首先查看hivesql产生job的counter数据发现总的CPUtimespent过高估计100.4319973小时每个map的CPUtimespent排第一的耗了2.0540889小时建议设置如下参数:1、mapreduce.input.fileinputformat.split.maxsize现在是256000000往下..
分类:
数据库 时间:
2015-05-27 10:27:10
阅读次数:
293
LIMIT语句优化原语句:SELECT * FROM table ORDER BY id DESCLIMIT 190000,10000优化后:SELECT * FROM table WHERE id < (SELECT MIN(alias.id) FROM (SELECT id FROM table...
分类:
数据库 时间:
2015-05-26 21:16:47
阅读次数:
125
摘要:数据库性能问题一直是决策者及技术人员共同关注的焦点,影响数据库性能的 一个重要因素就是SQL查询语句的低效率,而在SQL查询语句中多表联接查询的使用频率非常之高,最能体现查询复杂性,往往是SQL优化的重...
分类:
数据库 时间:
2015-05-25 13:09:41
阅读次数:
202
1.尽量避免在列上进行运算,这样会导致索引失效。
例如:select * from t where year(d) >=2011;优化为:select * from t where d>='2011-01-01'2.使用JOIN时,应该用小结果集驱动大结果集(就是将搜出来的结果数量小的放前面,这样就能减少不必要的搜索功能)。同时把复杂的JOIN查询拆分成多个Query。因为JION多个表时,可能导...
分类:
数据库 时间:
2015-05-24 08:55:22
阅读次数:
202
oracle优化一般分为:1、sql优化(现在oracle都会根据sql语句先进行必要的优化处理,这种应该用户不大了,但是像关联和嵌套查询肯定是和影响性能的) A、oracle的sql语句的条件是从右往左执行的,如下语句:select * from t_user where nation='回...
分类:
数据库 时间:
2015-05-24 01:18:13
阅读次数:
180
性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。为了获得稳定的执行性能,SQL语句越简单越好。对复杂的SQL语句,要设法对之进行简化。常见的简化规则如下: 1)不要有超过5个以上的表连接(JOIN)2)考虑使用临时表或表...
分类:
数据库 时间:
2015-05-20 14:45:43
阅读次数:
177