0
請看看這個:我是否需要在SUM(col)使用的列上創建索引?
SELECT SUM(col1) FROM mytable WHERE col2 = :val2
什麼指數(S)我需要爲上述查詢?我的意思是col1
需要一個索引,因爲它用在SUM()
函數中?
另外作爲一個說明,COUNT()
功能呢?
請看看這個:我是否需要在SUM(col)使用的列上創建索引?
SELECT SUM(col1) FROM mytable WHERE col2 = :val2
什麼指數(S)我需要爲上述查詢?我的意思是col1
需要一個索引,因爲它用在SUM()
函數中?
另外作爲一個說明,COUNT()
功能呢?
此查詢的最佳索引是mytable(col2, col1)
。它是查詢的覆蓋索引。
查詢中列的邏輯以WHERE
和ON
子句開始。關於構建變量條件的索引,MySQL有很好的documentation。
好的,只是哪個索引最適合[this](https://gist.github.com/anonymous/0b2b48e8f6ea7dd2a6e7e53e521f0b29)? –
'col1' **不需要索引。數據庫中的索引與書中的索引完全相同(現實生活中的索引)。索引是一種保存在內存中的數據結構(通常是),它告訴數據庫硬盤驅動器上的一條信息。這就是爲什麼你經常索引出現在WHERE條件中的列。但是,爲避免在磁盤上查找,可以像Gordon Linoff建議的那樣創建複合索引。這樣,MySQL查找所有滿足'col2 =:val'的記錄,然後避免在磁盤上查找,因爲'col1'是索引的一部分,所以它會讀取它。 –
@ N.B。謝謝 –