Hızla değişen bir sütundaki dizin

0

Soru

  1. "lastUpdatedOn" gibi hızla değişen sütuna dizin eklemek buna değer mi ?
  2. Tradeoff nasıl hesaplanır ?
  3. Birisi beni ne zaman ve nasıl resmi belgelere yönlendirebilir mi MySQL, satır eklerinde ve dizinlenmiş sütundaki güncellemelerde yeniden indeksleme yapar.
indexing mysql sql
2021-11-24 06:35:34
1

En iyi cevabı

0

"Hızla değişen sütun" içeren bir dizine sahip olup olmamanız bir uzlaşmadır.

Bir UPDATE dizindeki bir girdiyi silmeniz ve dizinin başka bir yerine yeni bir girdi eklemeniz gerekir.

Öte yandan, endeks nedeniyle endeks büyük ölçüde hızlanabilir.

Uzlaşmaları daha fazla tartışabilmemiz için lütfen somut bir örnek verin.

Düzenli olmayan-UNIQUE dizinler (aksine FULLTEXT ve SPATIAL) böylece korunur :

Buffer_pool'da henüz diske yazılmamış dizin güncelleştirmelerini koruyan bir "arabelleği değiştir" (qv) vardır.

Ne zaman bir DELETE oluşur, dizin girdisinin kaldırılması gerektiğini söylemek için Değişiklik Arabelleğine bir girdi eklenir.

İçin UPDATE cb'ye iki giriş yapılması gerekebilir.

Ne zaman bir SELECT böyle bir dizin kullanır, dizin için hem cb'yi hem de gerçek, disk üzerindeki Btree'yi kontrol eder. Bu BTree, buffer_pool'da önbelleğe alınır (blok blok). (Bir blok 16kb'dir ve yüzlerce girdi tutabilir.)

CB, "arka planda" veya "gerektiği gibi"diske boşaltılır. Bu, bir dizin bloğu getirmeyi (önceden önbelleğe alınmadıkça), bazı girdileri güncellemeyi (sil ve/veya ekle) ve diske geri yazmayı içerir. Hem okuma hem de yazma buffer_pool'da önbelleğe alınır, bu nedenle fiziksel bir G/Ç olabilir veya olmayabilir.

MySQL, belirli bir dizin dışında normal bir dizini ("reındex")" yeniden oluşturmaz" ALTERs veya OPTIMIZE. Yani, tüm değişiklikler anında yapılır. Cb'nin eylemi kullanıcı için şeffaftır.

2021-11-24 22:29:11

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................