DROP TRUNCATE分割槽引發的一系列問題

2021-07-10 19:18:42 字數 726 閱讀 4900

生產的分片資料庫innodb_buffer_pool_reads偏高

某個開發dba指出buffer_pool記憶體裡的資料和實際占用磁碟空間應是一致的,也就是varchar(n)欄位在buffer_pool中也僅占用n個位元組

drop和truncate分割槽期間,查詢掛起在opening table 狀態

buffer_pool記憶體占用空間什麼情況和磁碟一致,若不一致的話在什麼地方

drop和truncate分割槽區別在哪

是什麼導致drop或truncate分割槽的時候讓資料庫掛起

varchar(5)和varchar(2000)占用的buffer_pool空間幾乎一致

在資料量增大的過程中,buffer_pool和物理空間逐漸相近

buffer(page_type=index and table_name like '%tb%')不包含data_free

phsical size包含data_free,和select count(*) from  innodb_buffer_page where table_name is null近似

ps:buffer pool資料均取自information_schema.

innodb_buffer_page表;phsical size為ls檢視的物理占用空間

dict_sys-mutex 用於保護記憶體表資料字典 

dict_operation_lock 用於保護表元資料不被修改(參考:

delete和drop truncate的區別

1.truncate和不帶where子句的delete 以及drop都會刪除表內的資料。2.drop truncate都是ddl語句 資料定義語言 執行後會自動提交。1.truncate 和 delete 只刪除資料不刪除表的結構 定義 drop 語句將刪除表的結構被依賴的約束 constrain ...

drop truncate和delete的區別

delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中儲存以便進行進行回滾操作。truncate table 則一次性地從表中刪除所有的資料並不把單獨的刪除操作記錄記入日誌儲存,刪除行是不能恢復的。並且在刪除的過程中不會啟用與表有關的刪除觸發器。執行速度快。...

drop truncate和delete的區別

1 delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中儲存以便進行進行回滾操作。truncate table 則一次性地從表中刪除所有的資料並不把單獨的刪除操作記錄記入日誌儲存,刪除行是不能恢復的。並且在刪除的過程中不會啟用與表有關的刪除觸發器。執行速度...