Mysql

MYSQL 行數限制?

  • June 27, 2016

MYSQL 中表的最大行數是多少?

我有一個系統,在三個表中包含大約 600,000,000 行。這些表的平均數據長度(來自 data_length 列)為 58,000,000,000 字節。達到多少行後應該有警報?它們被間歇性地使用,因此歸檔它們將涉及一些額外的工作。

哪個是可取的?1. 歸檔 2. 轉向大數據 3. 保持原樣。

我已經編譯了MySQL 限制的摘要。一些,與你的問題有關:

  • InnoDB 分區限制為 64TB(2**46 字節)。
  • MyISAM 表限制為 2** 56 字節,但您需要更改設置以超過 2**48。
  • 在最近的某個版本之前,一個表可以有 1024 個分區,然後是 8192 個。
  • (BIGINT 與這些限制無關。)

有報警嗎?

  • 你有AUTO_INCREMENT嗎?如果是這樣,你需要注意它溢出。600M 是 28% 的距離INT SIGNED和 14% 的距離INT UNSIGNED
  • 58GB 很大,但肯定不是有史以來最大的。
  • 你確實提到了性能問題,所以我們可能不需要討論那麼大的表可能會出錯的事情
  • 歸檔——根據數據積累的速度,你什麼時候會用完磁碟空間?當磁碟已滿 50% 時,最好關註一下——這將為ALTER.

這是一個數據倉庫應用程序嗎?

最大行數取決於用於主索引的欄位類型。

如果unsigned bigint表可以是 18446744073709551615 行長。

引用自:https://dba.stackexchange.com/questions/101156