sqlite 事務(wù) SQLite事務(wù)SQLite插入多條語句為什么這么慢?
SQLite事務(wù)SQLite插入多條語句為什么這么慢?首先,確保在終止insert語句后,增加的空間屬于表的可用空間或數(shù)據(jù)庫的可用空間。您可以通過查詢存儲在表中的相關(guān)系統(tǒng)表,或者查看數(shù)據(jù)庫文件空間的使
SQLite事務(wù)SQLite插入多條語句為什么這么慢?
首先,確保在終止insert語句后,增加的空間屬于表的可用空間或數(shù)據(jù)庫的可用空間。您可以通過查詢存儲在表中的相關(guān)系統(tǒng)表,或者查看數(shù)據(jù)庫文件空間的使用情況(事實(shí)上,如果您很了解存儲引擎,可以直接回答這個問題)。我肯定是后者。由于insert事務(wù)是回滾的,所以表空間分配的動作屬于同一個事務(wù),所以它是自然回滾的)。如果是前者,則重建表聚集索引,然后收縮數(shù)據(jù)庫文件。如果是后者,可以直接收縮數(shù)據(jù)庫文件。收縮數(shù)據(jù)庫文件有幾個選項(xiàng)。不要選擇“僅截?cái)唷?。這只會縮小文件末尾的可用空間。重建索引尚未在20分鐘內(nèi)完成。也許你殺死的進(jìn)程還在回滾并鎖定表。如果是這樣,增加的空間仍然在表上,我們只能等到回滾完成。此外,實(shí)際上不建議收縮數(shù)據(jù)庫。其實(shí)質(zhì)是將文件中分散的數(shù)據(jù)頁依次向文件頭的方向移動,然后釋放保存的空間。那么與移動的數(shù)據(jù)頁相對應(yīng)的表片段無疑會增加。