2009-07-07 33 views
3

真的很大(例如,1億行)數據庫經常被打破嗎?我完全不熟悉擴展任何東西,但認爲也許一個數據庫可以作爲實際數據大塊的關鍵,成爲一個索引,可以說「哦,是的,該查詢需要20,000,000-25,000,000塊」,並且將查詢發送到該塊,跳過其餘部分。這不是我需要執行的事情,但我想我會在這裏要求資源指向正確的方向。問候。大型MySQL數據庫如何變得高效?

+0

如果你在談論MySQL,我認爲你的意思是有1億行的表,一個數據庫可以有它所喜歡的行數,但是如果每個表只有10行,並且有1000萬個表,那麼它將會是非常非常高效。 – 2009-07-07 02:18:52

回答

3

他們當然可以。例如,我知道大型系統通常具有多個數據中心,這些數據中心包含他們的數據庫部分以及它們之間的負載平衡。

根據我的理解,劃分像您所談論的大型數據庫的一個關鍵概念是數據庫分片。 This article可幫助您更好地瞭解分片如何劃分數據庫以更輕鬆地訪問並減少單個服務器上的負載。

我曾經以爲我需要這種類型的技術用於大約一百萬行的數據庫,但是當我學會了3NF和適當的數據庫結構時,我修復了我可怕的實施數據庫。謝謝你提醒我!我會很樂意看到你得到的其他答案。

0

大表格最大的問題是您要查詢多少數據。在使用100萬行後表時(如果您嘗試選擇整個東西,除了殺死服務器,我只犯了一次錯誤),使用LIMIT子句就變得極爲重要。

在索引和LIMIT子句之間,只要沒有試圖一次訪問整個數據集,MySQL表就可以非常高效地存儲非常大的數據集。

0

MySQL 5.1具有table partitioning功能,可以按照您的描述(基本級別)將表格分爲多個部分。但是,MySQL具有全面的性能調整功能,您需要熟悉所有這些功能,才能爲每次安裝選擇最佳的功能。