建表時pctfree和pctused的設定

2021-04-24 06:00:53 字數 662 閱讀 7706

對於資料塊的認識:   

。資料塊的大小有db_block_size決定,並且只有通過重建資料庫來得到調整。空間計算的根據來自於資料塊。   

。資料塊由資料塊頭,資料區組成。資料區的使用由pctfree,pctused控制。當insert發生時,   

pctfree決定了該塊所能容納的最多的資料,即,剩餘空間佔資料塊實際空間的百分比不小於pctfree。   

空間估算中pctfree是很乙個很重要的引數。   

對於在表上進行的事務(transaction)型別要有乙個清晰的認識,因為這會幫助如何更好的確定pctfree  &  pctused。   

例如:   

如果pctfree的值太大,記錄又可能很長,這會引起行鏈結(row-chaining),同時空間利用率也不高;   

如果pctfree的值太小,會影響塊資料記錄的增長,容易引起行遷移(row-migurating);   

如果pctused的值太大,空間上似乎沒什麼問題,但資料塊的操作上又有潛在的效能問題,因為資料塊需要在   

freelist上反覆搬動;   

如果pctused的值太小,則又出現了空間利用率不高的問題。   

pctfree  &  pctused表示的是db_block_size減去資料塊頭後的百分比值

PDMan建表時的問題

pdman每次建表到資料庫上都是乙個痛苦的過程,因為不知道為什麼就會建不出來,可能過一會又建出來了.一般的解決方法就是直接把軟體生成的建表語句在資料庫上執行,這次又遇到了這個問題,不過因為這次的pdman.json檔案是要上交的,所以不能糊弄過去了,只能開始痛苦的找bug之路.1.首先看同步時的sq...

建庫和建表中編碼問題

utf8 genera ci不區分大小寫,ci為case insensitive的縮寫,即大小寫不敏感。utf8 bin將字串中的每乙個字元用二進位制資料儲存,區分大小寫。例如 select from table where txt a 那麼在utf8 bin中你就找不到 txt a 的那一行,而 ...

MySQL建表時,五種日期和時間型別選擇

mysql中有多種表示日期和時間的資料型別。其中year表示年份,date表示日期,time表示時間,datetime和timestamp表示日期和實踐。它們的對比如下 日期時間型別 占用空間 日期格式 最小值最大值 零值示例 datetime 8 bytes yyyy mm dd hh mm ss...