2015-04-17 62 views
0

我想問一個有點奇怪的問題。我有一個hadoop項目,我想比較hadoop和mysql的時間表現。我已經讓hadoop應用程序來計算一些東西。如果將該應用程序轉換爲SQL,該應用程序將成爲COUNT查詢並加入某個表如何使mysql運行速度比hadoop慢?

首先,我嘗試使用大約100.000條記錄在SQL上的小表,它查詢大約0,3或0.4秒。所以,我想複製並放大包含更多記錄的表,以查看hadoop的功能而不是mysql。重複數據我可以使hadoop比mysql更大?或者我可以做什麼來證明hadoop時間表現比mysql更好?

+0

如果您不知道如何去實現這一目標,那麼您是否能夠理解並應用從實驗中獲得的信息? – symcbean

回答

1

爲了獲得比mysql更好的性能,你的數據量應該非常大。例如,如果你的數據是1GB。你將同時運行16個Mappers。如果您的數據少於64 MB,那麼您將使用單個映射器,並且在這種情況下您不會看到性能提升。因此,請確保您的數據足夠大以測試性能。

+0

以前感謝....在你看來,mysql的時間表現還取決於行號?我認爲有100.000條記錄,我得到0.3秒,當我乘以它時,它是否會影響到較慢的查詢? 謝謝 –

+0

是的。它必須掃描所有行才能得到結果。嘗試在巨大的數據集上執行連接。而不是運行一個簡單的where子句。你可以看到更多的性能差異,因爲連接是一個代價高昂的操作。 –

+1

要與Hadoop建立聯盟,請確保數據集大於可以緩存在RAM中(適用於Hadoop或MySQL)。 –

相關問題