Pokud váš DELETE
je určena k odstranění velké většiny řádků v této tabulce, jedna věc, kterou lidé často dělají, je zkopírovat pouze řádky, které si chcete ponechat, do duplicitní tabulky a poté použít DROP TABLE
nebo TRUNCATE
k vymazání původní tabulky mnohem rychleji.
Index může pomoci najít řádky, které potřebujete odstranit, ale odstranění vyžaduje aktualizaci indexu. Po smazání velkého množství řádků může být index nevyvážený a vyžaduje určitou údržbu pomocí OPTIMIZE TABLE
.
DATE_SUB()
funkce je konstantní výraz (nemění se řádek po řádku), takže optimalizátor dotazů by měl být dostatečně chytrý, aby to zohlednil a provedl výpočet jednou.
Pro primární klíč nemusíte vytvářet další index. Omezení primárního klíče implicitně vytváří index, který poskytuje stejnou výhodu jako index jiného než primárního klíče.
Složený index je pravděpodobně stejně užitečný jako jednosloupcový index, za předpokladu, že vaše vyhledávací kritéria odkazují na sloupec(y) nejvíce vlevo v indexu. "Pravděpodobně" varování je způsobeno tím, že jednotlivé indexové uzly jsou větší, a tak vyžaduje více paměti pro vyrovnávací paměť indexu, ale to je dostatečně malý faktor, takže bych nevytvářel celý další jednosloupcový index.