缺乏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庫算了。