簡體   English   中英

列總數上的SQL索引-可能嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM