數據庫索引實踐經驗·關於數據庫建索引和插數據兩者先後順序對效率的影響

  • 2020 年 2 月 18 日
  • 筆記

數據庫索引實踐經驗·關於數據庫建索引和插數據兩者先後順序對效率的影響

案例2·新數據庫建索引和導數據

(1) 先定義索引 (schema) 再 (2) load 數據 比 (2)(1)快的理論分析(前提是實踐下來確實是這樣嗎? 你們誰實踐了之後可以說一聲) 【(1)(2)】的話是邊寫入數據邊建立索引將索引寫數據庫; 【(2)(1)】 的話先把數據全部寫入, (1)的時候會將(2)階段數據全部讀出,建立實際索引寫入數據庫。 【(2)(1)】 至少比【(1)(2)】多了一個讀全部數據的過程。 (1)只能被稱為定義索引schema,而不是實際的簡歷起索引。

案例2的反例:

效率高。

案例1·重新生成和重新組織索引區別

某表記錄有1億條左右(數據已存在且龐大),12個索引(索引已存在),「刪除全部索引後再插入新索引 的速度「 是 」直接用新索引修改原來的12個索引的速度」 的百倍。其實原理很簡單,邊插入邊維護索引,開銷太大了, 前者是直接刪除後直接寫, 後者隨機讀取後修改。背後的原理涉及了磁盤頁面的重新組織。

https://blog.csdn.net/yanjinrong/article/details/49897085