我在我的數據庫中有一些列,主要是varchar 255s。它們只能訪問一次,但每次加載/請求登錄的用戶都會加載一次。 (大多數情況下它們都包含用戶喜好等內容)。我應該在這些列上創建一個索引嗎?
我的問題是,我應該在這些列上創建索引嗎?我已經在其他列上使用了多個查詢的索引,而不是隻讀一次並像這些列一樣存儲。
我在我的數據庫中有一些列,主要是varchar 255s。它們只能訪問一次,但每次加載/請求登錄的用戶都會加載一次。 (大多數情況下它們都包含用戶喜好等內容)。我應該在這些列上創建一個索引嗎?
我的問題是,我應該在這些列上創建索引嗎?我已經在其他列上使用了多個查詢的索引,而不是隻讀一次並像這些列一樣存儲。
您只需要在用於排序或搜索的列上使用索引。
即。它們出現在JOIN
,WHERE
,HAVING
,GROUP
或ORDER BY
條款中。
即使那樣,它也不是絕對必要的。
答案是這取決於.....看看你的查詢計劃,它將有利於添加索引?
您的查詢可能已經被目前存在的索引覆蓋。
請記住,添加索引會減慢更新/插入速度。
我認爲答案取決於列是否僅用於選擇,或者如果它們用於where子句或連接以及其他排序/查詢操作。
如果是前者,沒有索引,如果是後者,則查詢會更快與索引(以及通常)
如果我沒看錯的,索引列也將取決於有多少用戶在那裏以及每個用戶的偏好大小。例如,如果您有1000000個用戶偏好存儲,它肯定會幫助索引它。