海量数据如何优化SQL
根据执行计划(explain)设置合适的索引,选择合适的type(system最好,all最差)
数据库存储位置
数据库的数据文件和索引都储存在磁盘中;
每次查找数据都需要将索引文件读取到内存中
MySQL与hive
OLAP:在线分析处理,对应数据仓库hive,数据量大,不追求效率
OLTP:在线数据处理,对应数据库,数据量较小,追求效率
聚合函数和group by同时使用的字段限制
select 字段,聚合函数
from 表名
where 条件
group by 字段
这里select的字段要么包含在聚合函数中,要么包含在group by中,否则会出错。
聚合函数的嵌套使用
聚合函数不可以直接嵌套使用,但可以嵌套包含聚合函数的子查询。
错误:
select max(count(*)) from ...
正确:
select max(cnt) from(
select count(*) as cnt from...
)