Mysql

是否存在導出的 (.sql) 數據庫轉儲的大小可能比數據庫本身更大的情況?

  • May 4, 2018

我是一家本地公司的開發人員,我目前正在從事一個項目,該項目涉及將網站從其他託管服務提供商遷移到我公司的伺服器。

出於某種原因,這家其他公司不會讓我們訪問 cPanel,而是向我們提供項目(文件)和導出的數據庫腳本(.sql)。

現在我在導入數據庫後遇到問題,因為它缺少幾個表。我實際上認為數據庫導出本身沒問題。雖然腳本文件相當大~1.5GB,但導入後的數據庫只有~1GB。

問:

我正在使用 cPanel 和 phpMyAdmin,現在我想知道是否存在 db SQL 腳本文件可能大於數據庫本身的情況,或者 cPanel 或 phpMyAdmin 中的大小可能存在限制,這會導致在大約 1GB 上導入以跳過/停止或類似的東西?

我一直認為(並且仍然認為它更有意義)由於 SQL 腳本的建構方式、缺少索引等原因,db 只能比腳本文件大。

在我開始自己檢查 1.5GB sql 文件並查看那裡是否也缺少表之前,只是想檢查這是否可能。

謝謝 PS找不到類似的問題。

很多案例…

  • VARCHAR長度需要 1 或 2 個額外字節;作為文本,它需要兩個引號、一個逗號,可能還有一些轉義字元。
  • 123456789012345 在表中BIGINT佔用 8 個字節,但在轉儲中佔用 16 個字節(15 位數字,加上一個逗號)。
  • 一個NULL值轉儲為 5 個字節,不管數據類型需要什麼,這可能是 0。
  • DECIMAL(11,2)其中-123456789.12:表中的 5 個字節 -> 轉儲中的 14 個字節
  • (以及評論中給出的DATETIME/TIMESTAMP範例)

走向另一個方向:

  • BIGINT1:8 字節 -> 2
  • CHAR(100)“x”:100 個字元 -> 4 個字節。(此範例因字元集、版本和引擎而異。)
  • DECIMAL(11,0)其中:表中的 4 個字節 ->轉儲中的02 個字節 ( )0,

等等。

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