有沒有辦法優化以下查詢? SELECT count(*)>1000 FROM table_with_lot_of_rows WHERE condition_on_index;
使用此查詢,MySQL首先執行count(*),然後進行比較。只有少數行滿足條件時,這是很快的,但如果有很多行滿足條件,則可以永久使用。有沒有辦法在發現1000個物品時立即停止計數,而不是完成所有結果? 特別是,我對帶有
開關語句有多個評估短路嗎? 這可能沒關係,但我很好奇。 這裏有一個簡單的例子: let one = 1
let two = true
let three = false
switch (one, two, three) {
case let (0, b, c) where b==c:
break
case (0, true, true):
break
def
當使用箭頭功能並結合短路評估時,我遇到了意外的行爲。 正如預期的那樣,在函數下面的代碼的結果被分配給: let a = false || function(data) { return data }
然而使用箭頭函數時此相同的主要拋出異常: let a = false || (data) => data //SyntaxError: Unexpected token false
儘管如此,
在使用Postgresql多年之後,我仍然不知道是否存在有關如何保護條件表達式不受變量空值影響的最佳實踐,因爲SQL查詢規劃器具有完全權限來應用或忽略最常用的用來保護空值的成語:「var is null or var = 0」。 據稱,使用'case when ... end'語法解決了任何含糊不清的問題,但也降低了可維護性,因爲它用大量的單詞遮蔽了一個簡單的過程。 謝謝,提前。