索引布林欄位以增強效能
優化資料庫查詢對於高效能至關重要。開發人員面臨的一個常見問題與布林欄位的索引有關。雖然人們普遍認為對布林欄位建立索引是不必要的,但在某些情況下,這樣做可以顯著提高效能。
考慮一個查詢涉及布林字段上的過濾器的場景,例如“WHERE isok=1。”此過濾器檢查表中的每一行是否與提供的值匹配,這在大型表中可能需要大量計算。然而,透過在布林欄位上建立索引,資料庫引擎(本例中為 InnoDB)可以更有效地存取符合條件的行。
這是因為索引充當了快捷方式,允許引擎快速定位具有指定值的行,而不必檢查表中的每一行。索引提供了到資料的直接路徑,減少了所需的處理量,從而提高了查詢效能。
在實際範例中,一個包含大約400 萬行的表,其中只有一小部分行(約1000)將布林欄位設為True,在布林欄位上新增索引後,效能得到顯著提高。以前需要 9 秒以上才能完成的查詢已減少到不到一秒。
因此,索引布林欄位並不總是能提供任何效能優勢。如果需要根據布林值過濾大型表中的少量行,則在該欄位上建立索引可以大大加快查詢執行速度。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3