wujek2009
4.08.2012, 08:45:56
Czy zakładacie indeksy z kolumny typu enum, gdzie wartości to (yes|no) bądź na kolumny typu tinyint gdzie wartości to (0 bądź 1)?
Oczywiście takie kolumny będą często wykorzystywane w klauzi np. WHERE - ale kiedyś obiło mi się o uszy, że jeśli wartość kolumny jest zazwyczaj taka sama to nie ma sensu zakładania indeksu.
Niktoś
4.08.2012, 09:27:15
Ma to znaczenie dla szybkości wykonywani się kwerendy.Założenie indeksu na takie pole w niektórych przypadkach zapytanie może wykonywać się szybciej, w niektórych wolniej.Tutaj masz przeprowadzone testy:
http://www.mysqlperformanceblog.com/2007/0...n-where-column/
Z enum są wątpliwości. Podetknięto mi kilka lat temu jakiś artykuł mówiący, że ten typ ma niejako automatycznie nakładany w MySQL indeks, więc ręczne go przydzielanie nie ma sensu. Z tego co później testowałem różne kwerendy, wynika że ma to potwierdzenie w rzeczywistości. Nałożenie indeksu na enum nie zmienia czasu wykonania.