1> 索引 雖然索引的目的在於提高資料庫的性能,但這裡有幾個情況需要避免使用索引。使用索引時,應重新考慮下列準則: 2> 事務 對於事務,就是資料庫的一次原子性的執行操作。原子性的執行操作為數據的整體性執行帶來的可靠安全性。在SQLite中,如果我們預設事務(會為每個插入和更新都創建一次事務,並且在 ...
1> 索引
雖然索引的目的在於提高資料庫的性能,但這裡有幾個情況需要避免使用索引。使用索引時,應重新考慮下列準則:
索引不應該使用在較小的表上。 索引不應該使用在有頻繁的大批量的更新或插入操作的表上。 索引不應該使用在含有大量的 NULL 值的列上。 索引不應該使用在頻繁操作的列上。
2> 事務
對於事務,就是資料庫的一次原子性的執行操作。原子性的執行操作為數據的整體性執行帶來的可靠安全性。在SQLite中,如果我們預設事務(會為每個插入和更新都創建一次事務,並且在每次插入和更新後會立刻提交本次操作),即沒有手動創建事務,假設此時有1000條數據,那麼數據的執行流程是 創建事務 -> 執行插入或更新操作 -> 提交事務,這樣的流程會執行1000次。如果我們手動創建了事務,則執行流程為: 創建事務 -> 執行1000條SQL數據操作 -> 提交事務。很明顯,我們在SQLite中使用事務可以為插入和更新操作帶來很大的優化。下麵來看在SQLite中如何使用事務:
從上圖我們看到,執行一次事務分為了四步,分別是:開始事務 -> 執行SQL ->設置事務執行成功 -> 結束事務