文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  MERGE 表格的優點和缺點

18.7.1 MERGE 表格的優點和缺點

MERGE 表格可以幫助您解決以下問題

  • 輕鬆管理一組日誌表格。例如,您可以將不同月份的資料放入不同的表格中,使用 myisampack 壓縮其中一些表格,然後建立 MERGE 表格將它們作為一個表格使用。

  • 獲得更快的速度。您可以根據某些條件分割一個大型唯讀表格,然後將個別表格放置在不同的磁碟上。以這種方式建構的 MERGE 表格可能會比使用單個大型表格快得多。

  • 執行更有效率的搜尋。如果您確切知道自己在尋找什麼,則可以針對某些查詢僅在其中一個基礎表格中搜尋,而對其他查詢使用 MERGE 表格。您甚至可以擁有許多不同的 MERGE 表格,這些表格使用重疊的表格集。

  • 執行更有效率的修復。修復對應到 MERGE 表格的個別較小表格比修復單個大型表格更容易。

  • 立即將多個表格映射為一個。 MERGE 表格無需維護自己的索引,因為它使用個別表格的索引。因此,MERGE 表格集合的建立或重新映射速度 非常 快。(即使未建立索引,您在建立 MERGE 表格時仍必須指定索引定義。)

  • 如果您有一組表格,您會從這些表格按需建立大型表格,則可以改為按需從這些表格建立 MERGE 表格。這速度更快,而且節省大量磁碟空間。

  • 超出作業系統的檔案大小限制。每個 MyISAM 表格都受此限制約束,但是 MyISAM 表格的集合則不受限制。

  • 您可以透過定義映射到該單一表格的 MERGE 表格來為 MyISAM 表格建立別名或同義詞。這樣做不應該對效能造成明顯的影響(每次讀取只有幾個間接呼叫和 memcpy() 呼叫)。

MERGE 表格的缺點是

  • 您只能對 MERGE 表格使用相同的 MyISAM 表格。

  • 某些 MyISAM 功能在 MERGE 表格中不可用。例如,您無法在 MERGE 表格上建立 FULLTEXT 索引。(您可以在基礎 MyISAM 表格上建立 FULLTEXT 索引,但是您無法使用全文搜尋來搜尋 MERGE 表格。)

  • 如果 MERGE 表格是非暫時性的,則所有基礎 MyISAM 表格都必須是非暫時性的。如果 MERGE 表格是暫時性的,則 MyISAM 表格可以是暫時性和非暫時性的任意組合。

  • MERGE 表格使用的檔案描述符比 MyISAM 表格更多。如果有 10 個用戶端使用映射到 10 個表格的 MERGE 表格,則伺服器將使用 (10 × 10) + 10 個檔案描述符。(每個用戶端 10 個資料檔案描述符,以及用戶端之間共用的 10 個索引檔案描述符。)

  • 索引讀取速度較慢。當您讀取索引時,MERGE 儲存引擎需要在所有基礎表格上發出讀取操作,以檢查哪個表格最符合給定的索引值。為了讀取下一個索引值,MERGE 儲存引擎需要搜尋讀取緩衝區以尋找下一個值。只有在使用完一個索引緩衝區時,儲存引擎才需要讀取下一個索引區塊。這使得 MERGE 索引在 eq_ref 搜尋上慢得多,但在 ref 搜尋上沒有慢太多。如需更多關於 eq_refref 的資訊,請參閱 第 15.8.2 節,「EXPLAIN 陳述式」