缺乏hash join 和parallel 这种工具,MYSQL 注定不是个合适的数据仓库工具。数据库
不管是是myisam仍是innodb,在处理一个复杂的SQL查询的时候,并不能发挥多核CPU的性能。分布式
只会有一个CPU正在满负荷地运转。工具
因此对于一个分析性数据库而言,MYSQL多核其实是极大的浪费。oop
MYSQL作查询优化的时候,一个是注意在group by后面使用order by null,禁用默认的group by排序。性能
二是使用索引,5.6有condition push down的功能。能够大大提升索引查询的效率。优化
事务型应用尽可能使用主键查询,或者查询的数据是有索引。排序
选择索引的字段,必定要符合差别率高的字段,甚至比联合索引带来的总体效果更好。索引
可是方案选型了之后,只能作更多的优化。事务
好比说:手动拆分SQL,再合并结果集。hadoop
my.cnf配置优化,增长临时表空间和key_buffer_size等等。
即便是KETTLE, DATASTAGE, 在处理海量数据的时候,也不能作到像hadoop那样分布式计算。
哎,若是让我选型的话,仍是上PG库算了。