Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden Sie timestamp (oder datetime) als Teil des Primärschlüssels (oder Teil des Clustered-Index)

Vier Millionen Zeilen sind nicht riesig.

Ein Unterschied von einem Byte zwischen den Datentypen datetime und timestamp ist das letzte was Sie bei der Wahl zwischen diesen beiden Datentypen beachten sollten. Überprüfen Sie ihre Spezifikationen .

Erstellen eines Teils eines Zeitstempels Ihres Primärschlüssels ist eine schlechte, schlechte Idee. Denken Sie darüber nach, welchen Primärschlüssel Sie verwenden bedeutet in einer SQL-Datenbank.

Setzen Sie einen Index auf Ihre Timestamp-Spalte. Holen Sie sich einen Ausführungsplan und fügen Sie ihn in Ihre Frage ein. Bestimmen Sie Ihren Median Abfrageleistung, und fügen Sie das ein auch in Ihre Frage.

Die Rückgabe der Zeilen eines einzelnen Tages aus einer indizierten Tabelle mit 4 Millionen Zeilen auf meinem Desktop-Computer dauert 2 ms. (Es gibt etwa 8000 Zeilen zurück.)