Gibt es einen Unterschied in der Leistung zwischen dem Operator IS NULL
und der Funktion ISNULL()
?Unterschiede zwischen "IS NULL" und "ISNULL()" in Mysql
Antwort
Betrachtet man das MySQL-Handbuch, scheinen sie wirklich Synonyme zu sein.
und selbst wenn sie es nicht sind, würde ich dazu neigen, den Abfrageoptimierer zu vertrauen, die beste Lösung zu wählen.
Ich readed das auch, aber die ISNULL Doc sagt, dass SHARES einige spezielle Verhaltensweisen mit IS NULL, die mich erschrocken. – Wiliam
@William guten Punkt. Vielleicht ist ein Testlauf der beste Weg! –
Huh? In meinem Verständnis bedeutet "teilt besonderes Verhalten" nur, dass sie komisch sind, aber auf die gleiche Weise sind sie komisch. – Amadan
This thread ist ähnlich, obwohl nicht genau auf MySQL. Entsprechend dem dort gezeigten Test:
IS NULL
ist effizienter, da es keinen Scan erfordert.
Die Suche ist in der Regel schneller als ein Scan, da nur qualifizierende Datensätze enthalten sind, während der Scan jede Zeile umfasst. Es wird näher erläutert here.
Ein weiterer Unterschied (obwohl es nicht die Leistung ist) ist die Negation Syntax:
IS NOT NULL /* using NOT operator */
! ISNULL() /* using exclamation mark */
- 1. Unterschied zwischen MySQL IS NOT NULL und! = ''
- 2. Ersetzen von IsNull und LEN durch Case und IS NULL
- 3. SQL - Unterschied zwischen COALESCE und ISNULL?
- 4. Was ist "= null" und "IS NULL"
- 5. isnull vs null
- 6. Warum benötigt (x IS NULL! = Y IS NULL) zusätzliche Klammern in MySQL?
- 7. Syntax Unterschiede zwischen MySQL, SQLite und pgsql
- 8. Gibt es einen Unterschied zwischen IS NULL und
- 9. Unterschied zwischen null default null und default null in mysql?
- 10. MySQL "IS IN" entspricht?
- 11. Unterschiede in den Wochen zwischen PHP und MySQL
- 12. Unterschied zwischen .is und .filter in jQuery
- 13. Was sind Unterschiede zwischen INSERT und UPDATE in MySQL?
- 14. Bash Unterschiede zwischen {} und()?
- 15. Unterschied zwischen Null == Objekt und Objekt == null
- 16. TSQL Bedingte IS NULL und = Operator
- 17. "IS NULL" in Zend_Db_Table select funktioniert nicht
- 18. Unterschiede zwischen schwach und unsafe_unreated
- 19. MySQL mehrere Felder mit IS NOT NULL Auswahl funktioniert nicht
- 20. MySQL gibt zuletzt eingefügt, wenn Abfrage IS NULL
- 21. SQL Query Unterschiede zwischen MS Access und MySQL
- 22. Unterschiede zwischen Mustererkennung und Vereinheitlichung?
- 23. Unterschiede zwischen mousemove und touchnove
- 24. Unterschiede zwischen für ... in und für ... .. in
- 25. Unterschiede zwischen NoClassDefFoundError und ClassNotFoundException?
- 26. Unterschiede zwischen RestKit und AFIncrementalStore
- 27. Unterschiede zwischen char * und String
- 28. Unterschiede zwischen Funktoren und Endofunkern
- 29. Unterschiede zwischen MPI_Scatter und MPI_Bcast
- 30. Unterschiede zwischen _redirect ('*/* /') und _redirect ('*/*')
so ziemlich das gleiche, glaube ich. http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html – Amadan