mysql数据库特征_如何掌握MySQL数据库中动态表的特征
以下的文章主要介紹的是如何正確掌握MySQL數據庫中動態表的特征,可以說動態表在MySQL數據庫中使用頻率還是很大的,所以MySQL數據庫中動態表的掌握也是一件很重要的事情,以下就是文章的具體內容。
如果一個MyISAM表包含任何可變長度列(VARCHAR, BLOB或TEXTDynamic),或者如果一個表被用ROW_FORMAT=DYNAMIC選項來創建,動態存儲格式被使用。
這個格式更為復雜一點,因為每行有一個表明行有多長的頭。當一個記錄因為更新的結果被變得更長,該記錄也可以在超過一個位置處結束。
你可以使用OPTIMIZE TABLE或myisamchk來對一個表整理碎片。如果在一個表中有你頻繁訪問或改變的固定長度列,表中也有一些可變長度列,僅為避免碎片而把這些可變長度列移到其它表可能是一個好主意。
MySQL數據庫動態格式表的一般特征:
除了長度少于4的列外,所有的字符串列是動態的。
在每個記錄前面是一個位圖,該位圖表明哪一列包含空字符串(對于字符串列)或者0(對于數字列)。注意,這并不包括包含NULL值的列。如果一個字符列在拖曳空間移除后長度為零,或者一個數字列為零值,這都在位圖中標注了且列不被保存到磁盤。 非空字符串被存為一個長度字節加字符串的內容。
通常比固定長度表需要更少的磁盤空間。
每個記錄僅使用必需大小的空間。盡管如此,如果一個記錄變大,它就按需要被分開成多片,造成記錄碎片的后果。比如,你用擴展行長度的信息更新一行,該行就變得有碎片。在這種情況下,你可以時不時運行OPTIMIZE TABLE或myisamchk -r來改善性能。可使用myisamchk -ei來獲取表的統計數據。
動態格式表在崩潰后要比靜態格式表更難重建,因為一個記錄可能被分為多個碎片且鏈接(碎片)可能被丟失。
動態尺寸記錄期望的行長度用下列表達式來計算:
·3
·+?(number?of?columns?+?7)?/?8
·+?(number?of?char?columns)
·+?(packed?size?of?numeric?columns)
·+?(length?of?strings)
·+?(number?of?NULL?columns?+?7)?/?8
對每個鏈接需要額外的6字節。在一個更新導致一個記錄的擴大之時,一個動態記錄被鏈接了。每個新鏈接至少是20字節,所以下一個擴大可能在同樣的鏈接里進行。如果不是,則另一個鏈接將被建立。你可以使用myisamchk -ed來找出鏈接的數目。所有的鏈接可以用myisamchk -r來移除。
以上的相關內容就是對怎樣掌握MySQL數據庫中動態表特征的介紹,望你能有所收獲。
【編輯推薦】
【責任編輯:孫巧華 TEL:(010)68476606】
點贊 0
總結
以上是生活随笔為你收集整理的mysql数据库特征_如何掌握MySQL数据库中动态表的特征的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搜狗浏览器怎么新建隐私窗口 搜狗浏览器开
- 下一篇: yolov4用1050ti_简单粗暴的多