[英]SQL index on a sum of columns - is that possible?
給定兩個表, T1
a
列和T2
b
列,是否可以將索引應用於T1.a + T2.b
列的總和? 我最近遇到了一個涉及該索引的問題,這讓我感到非常驚訝,因為問題不是是否可能(我相信這是不可能的),而是會加速某些示例查詢。 如果可能的話,我們究竟在編制什么索引? 在諸如WHERE T1.a+T2.b = 3
類的查詢中還是在其他情況下是否有幫助? 謝謝!
根據您的SQL產品,可能可以索引包含group by的視圖以獲取持久的摘要值。
然而
這是一項本地優化(谷歌“不提供免費午餐”),因為它將為您帶來更快的選擇性能,但會降低其他用戶的插入和更新速度。
是的,大多數(不是全部)數據庫系統都允許您根據表達式的結果創建索引,因此在這些系統中可以根據兩列的總和創建索引。
在諸如
WHERE T1.a+T2.b = 3
類的查詢中還是在其他情況下是否有幫助?
這完全取決於查詢以及編譯器決定使用哪種計划來評估查詢。 如果按兩列的總和進行過濾,並且滿足該條件的記錄相對較少,那么可以,索引將減少查找匹配記錄所需進行的掃描量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.