0
我想了解MyISAM如何物理存儲其記錄。 在MyISAM存儲引擎變量大小的記錄中,每條記錄後都有一些未使用的數據。有多少字節被保留爲未使用的數據?有沒有MyISAM正在使用的特定算法?MySQL中未使用的數據myisam存儲引擎
編輯:我必須在這裏問另一個問題。當插入新記錄時,在下一記錄開始供將來使用之前,在該記錄的末尾重新存儲任何可用空間?
我想了解MyISAM如何物理存儲其記錄。 在MyISAM存儲引擎變量大小的記錄中,每條記錄後都有一些未使用的數據。有多少字節被保留爲未使用的數據?有沒有MyISAM正在使用的特定算法?MySQL中未使用的數據myisam存儲引擎
編輯:我必須在這裏問另一個問題。當插入新記錄時,在下一記錄開始供將來使用之前,在該記錄的末尾重新存儲任何可用空間?
什麼eggyal說是真實的:「未使用的數據出現刪除記錄,或更新值更短的可變長度字符串」。
這也意味着,除非您「抽空」您的數據庫,否則每個新記錄都將佔用該空閒空間,即使記錄長於可用空間也是如此。根據記錄的保存方式,每個記錄有不同的塊類型。
如果記錄比可用空間長,它將佔用所有空間,並在記錄完全寫入之前「查找」其他未使用的數據。
如果沒有未使用的數據,則記錄寫在最後。
請參閱此鏈接爲一個偉大的答案 http://stackoverflow.com/questions/16711983/understanding-myisam-record-structure – Namphibian
是的,我看這個問題的答案,但它不談論引擎如何管理每條記錄中未使用的數據部分。 –
「未使用的數據」是由於刪除記錄或使用較短值更新可變長度字符串而產生的。 – eggyal