Mysql
是否存在導出的 (.sql) 數據庫轉儲的大小可能比數據庫本身更大的情況?
我是一家本地公司的開發人員,我目前正在從事一個項目,該項目涉及將網站從其他託管服務提供商遷移到我公司的伺服器。
出於某種原因,這家其他公司不會讓我們訪問 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
範例)走向另一個方向:
BIGINT
1:8 字節 -> 2CHAR(100)
“x”:100 個字元 -> 4 個字節。(此範例因字元集、版本和引擎而異。)DECIMAL(11,0)
其中:表中的 4 個字節 ->轉儲中的0
2 個字節 ( )0,
等等。