2013-04-08 9 views

Odpowiedz

12

Obie są tak samo skuteczne, jak inne - funkcje mają taki sam narzut, jak każdy inny.

Ale to jest bardziej wydajny niż:

(column_name is null 
or column_name = 'test') 

Ponieważ funkcja nie musi być wywoływany.

Może się okazać, że wprowadzenie częściej spotykanego testu poprawi najpierw wydajność.


W przypadku takich pytań najprostszym i bardziej niezawodnym sposobem wykrycia względnej wydajności jest po prostu wypróbowanie ich i porównanie ustawień czasu zapytania. Upewnij się, że masz zestawy danych o rozmiarze i realistycznej wartości, więc test jest sprawiedliwy.

11

Cel NULLIF i IFNULL nie jest taki sam, więc porównanie wyników nie ma żadnego sensu.

NULLIF służy do powrotu null jeśli ekspresja ma określoną wartość, przy czym IFNULL służy do powrotu text Jeśli wyrażenie jest null.

Przykład:

SELECT IFNULL(field,'empty') from table1;

Od null nie ma sensu do użytkownika końcowego.

insert into table1 (field) values (nullif(field,'empty'));

Od null ma szczególne znaczenie w bazie danych.

Powiązane problemy