Ben gibi benim veritabanı üzerinde bir sorgu var:Performans sorguda yalnızca bir sütun kullanılarak
SELECT * FROM expenses WHERE user_id = ? AND dated_on = ?
ben hem user_id
ve dated_on
sütunları tabloya bir dizin ekledik . Ben SHOW INDEXES FROM expenses
kullanarak dizinleri incelemek, iki satır vardır - 1'lik bir seq_in_index
değeri ile bir, 2.
bir seq_in_index
değeri ile diğer Sonra sadece birini kullanan bir sorgu göndermek eğer Benim sorum, iki WHERE maddeler, örneğin:
SELECT * FROM expenses WHERE user_id = ?
başka bir dizin sadece olan endeksler user_id
kolon oluşturmak için bir yararı var mı ya da yukarıda tarif edilen user_id
/dated_on
göstergesi verimli şekilde kullanılacak?
Son olarak, nasıl sorgu kullanırsanız hakkında:
SELECT * FROM expenses WHERE dated_on = ?
Nasıl 2 seq_in_index
değeri bu durumda endeks kullanımı ve performansını nasıl etkiliyor?
A nasıl seq_in_index değer değişiklikleri bilmek, 3 sütun indeksi A için
, B, C,
WHERE A = ? AND B = ?
A ve B üzerinde bir indeks kullanacak, ancakWHERE A = ? AND C = ?
sadece üzerinde bir dizin kullanır sorgu performansı, bu yüzden soruyu buna göre düzenledim – Olly