sql >> Databáze >  >> RDS >> Mysql

Potřebuje Laravel's soft_delete index na MySQL?

Sloupec deleted_at není dobrým kandidátem na index. Pokusím se to vysvětlit lépe ve srovnání s komentářem:indexy jsou užitečné pouze tehdy, když je jejich mohutnost relativně vysoká. Mohutnost je číslo, které popisuje jedinečnost indexu v sadě dat. To znamená, že je to celkový počet záznamů vydělený celkovým počtem jedinečných záznamů.

Například mohutnost primárního klíče je 1. Každý záznam obsahuje jedinečnou hodnotu primárního klíče. 1 je také nejvyšší číslo. Můžete to považovat za "100%".

Ale sloupec jako delete_at takovou hodnotu nemá. Laravel dělá s delete_at kontrolu, zda je nebo není null. To znamená, že má dvě možné hodnoty. Sloupce, které obsahují dvě hodnoty, mají extrémně nízkou mohutnost, která se snižuje s rostoucím počtem záznamů.

Takový sloupec můžete indexovat, ale nepomůže vám to. Stane se, že by to mohlo věci zpomalit a zabírat místo.

TL;DR:ne, tento sloupec nemusíte indexovat, index nebude mít žádný příznivý dopad na výkon.



  1. Odstraňování problémů s výkonem CPU na VMware

  2. SQL – Jak ukládat a procházet hierarchie?

  3. Vyberte příkaz uvnitř smyčky v uložené proceduře Mysql

  4. Nějaký důvod stále používat hadí pouzdro pro databázové tabulky a sloupce?