consideri this Oracle documenti su indici, this circa la velocità di inserimento e this domanda su StackOverflow mi portano a concludere che:Come e quando vengono utilizzati gli indici nelle operazioni INSERT e UPDATE?
- indici ci aiuta a individuare le informazioni più rapidamente
- chiavi primarie e unici sono indicizzati automaticamente
- Inserimento con indici può causare prestazioni peggiori
Tuttavia, ogni volta che vengono discussi gli indici, ci sono solo SELECT
operazioni mostrate come esempi.
La mia domanda è: sono indici utilizzati nelle operazioni INSERT
e UPDATE
? Quando e come?
miei suggerimenti sono:
UPDATE
può usare indice inWHERE
clausola (se la colonna nella clausola ha indice)INSERT
può usare indice quando utilizzaSELECT
(ma in questo caso, l'indice è da un altro tavolo)- o probabilmente al momento del check vincoli di integrità
ma non ho tale Knowle profonda dge of using indexes.
rilevamenti vengono usati con operazioni INSERT e UPDATE se la tabella ha chiavi esterne o altri tipi di vincoli, unico per esempio. È anche possibile avere un famigerato evento di contesa TM se non si dispone di un indice su una chiave esterna.Oracle utilizza anche indici su tabelle dipendenti, non solo sulla tabella con cui si sta lavorando. Ci sono tonnellate di materiali in Internet e documentazione, quindi non penso che ci sia un punto di discussione qui. – stee1rat
Fai attenzione, uno dei tuoi link (https://docs.oracle.com/cd/E17952_01/refman-5.1-en/insert-speed.html in particolare) è per mysql, non per Oracle. I documenti per entrambi i database si trovano su docs.oracle.com, è facile confonderli. – Timekiller
Grazie per le vostre risposte. Sapevo che gli indici non sono usati solo sui tavoli con cui lavoro. Probabilmente mi aspettavo qualcosa di più difficile dietro. :) –