我知道我可以為單列和復合列創建索引。我也可以對某些運算式進行索引:
- 在按條件搜索資料的運算式上創建索引,而我首先指定欄位首先需要排序,然后按條件輸出結果,并基于此運算式構建索引。
(就像使用 Couchbase 時的索引一樣)
CREATE INDEX `us_users_sorted` ON
`user_profile`(
`_class`,
`enabled`,
`countryCode`,
`firstName` DESC,
`lastName` DESC)
WHERE (((`_class` = "com.cb.demo.userProfile.model.UserEntity")
and (`enabled` = true))
and (`countryCode` = "US"))
但我找不到有關此的資訊:
- 如果我創建一條記錄,我是否必須在同一個事務中再次呼叫來為該資料創建索引(索引如上所述)?
- 洗掉記錄時,我是否還必須再次觸發該索引的創建?
- 更新時,我也必須這樣做嗎?
- 如果我使用Spring Data Jpa ,我應該通過nativeQuery()執行此操作嗎?
我認為將其分成幾個問題沒有意義,實際上這是一個關于使用Spring和關系資料庫處理索引的問題。
當使用復雜的關系資料庫索引(我不是指 Couchbase)和Spring data jpa(spring boot )時,也許網上有人看到了一個詳細的示例,其中包含所有細微差別?
如果可能,請舉個例子回答
uj5u.com熱心網友回復:
只需為所有現有記錄創建一次索引。之后,如果添加/更新/洗掉資料庫記錄,它只需要從索引中添加/更新/洗掉該記錄,而不是為所有記錄再次創建整個索引。
您可以認為存在一個索引,就像存在另一個索引一樣,HashMap它允許您通過某些鍵快速檢索記錄。但是,每當在與此索引相關的表中添加/更新/洗掉記錄時,資料庫將幫助自動維護此 HashMap 的內容。就像你初始化這個 HashMap 的內容一樣創建一個索引,它只完成一次。
所以你不應該通過原生查詢創建索引。你應該在啟動應用程式之前單獨創建它。就像您創建資料庫表一樣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/411515.html
標籤:
