Mysql
MYSQL 行數限制?
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 行長。