Frage

Die MySQL-Dokumentation ist nicht sehr klar zu diesem Thema. Ich möchte einen Index zu einer vorhandenen Tabelle hinzuzufügen. Die Tabelle ist eine Benutzertabelle mit dem Login-ID und Passwort, und ich mag einen Index für diese schaffen, zu optimieren anmelden.

Dies ist, wie ich dachte, ich würde versuchen, es:

mysql> ALTER TABLE `users` ADD INDEX(`name`,`password`);

Dies erstellt:

mysql> show index from karmerd.users;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+   
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |    
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+    
| users |          0 | PRIMARY  |            1 | id          | A         |           2 |     NULL | NULL   |      | BTREE      |         |     
| users |          1 | name     |            1 | name        | A         |           2 |     NULL | NULL   |      | BTREE      |         |     
| users |          1 | name     |            2 | password    | A         |           2 |     NULL | NULL   | YES  | BTREE      |         |     
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

Haben erreicht das, was ich versuche zu tun? (Optimierung der Protokollierung in?) Früher hatte ich nur einen Primärschlüssel auf ein Feld namens ‚id‘.

War es hilfreich?

Lösung

Ja, erreicht dies einen Index zu erstellen. Der Index wird „name“ genannt (wenn Sie den Index einen Namen geben Sie nicht, versucht es die erste Spalte verwenden Sie im Index angeben). Der Index ist ein Verbund aus zwei Spalten:. name in Position 1 und in Position 2 password

Was, ob dieser es Protokollierung optimieren, dass, wie Sie Ihre Anfragen hängt möglicherweise nicht den Index verwenden. Sie sollten auch darüber erfahren, wie Abfragen zu analysieren mit EXPLAIN .


Sie sollten auch mehr über das Speichern von Passwörtern lesen.

Hier ist ein gutes Blog zu dem Thema: „ Sie sind vermutlich falsch Passwörter speichern "

Andere Tipps

Es sei denn, Benutzernamen in Ihrer Anwendung nicht eindeutig zuzuordnen sind, ich glaube nicht, dass wirklich Sinn zu indizieren „Passwort“ machen ist; der Index wird größer sein und Einsätze werden ohne Mehrwert langsamer sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top