![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
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/ |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
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.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 00:08 |