Beispiel Tabelle
CREATE TABLE `api_cache` ( `id` int(11) NOT NULL AUTO_INCREMENT, `key` char(32) DEFAULT NULL, `data` longtext, `created` timestamp NULL DEFAULT CURRENT_TIMESTAMP , `expired` timestamp NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`cache_id`) USING BTREE, UNIQUE KEY `key` (`cache_key`), KEY `exp` (`cache_expired`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Möglichkeit 1
Diese Variante des Vergleichs mit einem Timestamp ist ziemlich langsam. Es wird kein Index benutzt
EXPLAIN SELECT * FROM api_cache WHERE UNIX_TIMESTAMP(`expired`) < 1448229347
Möglichkeit 2
Diese Variante ist schneller und besser weil MySQL hier den Index verwendet Vorausgesetzt es wurde einer gesetzt.
EXPLAIN SELECT * FROM api_cache WHERE `expired` < '2015-11-22 18:00:00'
Folgende Artikel könnten auch interessieren
- Was sind temporäre Tabellen bei MySQL und wie konfiguriert man diese richtig?
- Performancesteigerung von MySQL durch Optimierung der Queries
- MySQL: NOT IN , NOT EXISTS oder LEFT JOIN mit IS NULL Abfrage?
- MySQL Performance Optimierung
- MySQL Performance Cheat Sheet
- MySQL Monitoring & Profiling
- MySQL Indexe richtig setzten
- Der MySQL Query Cache und wie stelle ich diesen richtig ein?
- Pentaho Open Source Business-Intelligence-Software
- MySQL: Daten per Datei ein- und auslesen
- MySQL Query Optimierung: Alle Einträge holen die doppelt vorhanden sind
- MySQL Queries mit EXPLAIN auswerten und das Ergebnis richtig deuten
- MySQL Queries – Tips und Tricks
- MySQL Profiling Syntax
- MySQL PROCESSLIST
- MySQL Performance Optimierung durch richtiges Konfigurieren
- MySQL Performance Erfolge
- MySQL Fachwissen
- Informationen über die Tabellen in der MySQL Datenbank
- Einige nützliche MySQL Trigger die öfters mal Verwendung finden