SELECT * FROM employees WHERE last_name = 'Smith';
si vous interrogez plusieurs fois une seule colonne d'une table, créez un index pour cette colonne
Si vous ou votre application avez besoin de données provenant de plusieurs colonnes en fonction de conditions, créez un index composite
Par exemple, votre table contient des colonnes commecreated_at et update_At et timesptamps, alors évitez de sélectionner * car elles ne sont pas nécessaires dans les scénarios normaux
Requête inefficace
SELECT * FROM orders WHERE order_date > '2023-01-01';
Requête optimisée
SELECT order_id, customer_id FROM orders WHERE order_date > '2023-01-01';
si vous joignez des tables avec une clé primaire, il n'est pas nécessaire de créer car la clé primaire est déjà un index
SELECT orders.order_id, customers.name FROM orders JOIN customers ON orders.customer_id = customers.id WHERE customers.country = 'USA';
dans la requête ci-dessus, le commandes.customer_id doit être indexé et c'est une relation d'une autre table
customers.id est une clé primaire de la table clients donc pas besoin de créer un index
customers.country doit être indexé car c'est une condition
comme la liste des utilisateurs et des commandes et d'autres éléments qui ne changent pas fréquemment
CREATE TABLE orders ( order_id INT NOT NULL, order_date DATE NOT NULL, ... PRIMARY KEY (order_id, order_date) ) PARTITION BY RANGE (YEAR(order_date)) ( PARTITION p0 VALUES LESS THAN (2000), PARTITION p1 VALUES LESS THAN (2010), PARTITION p2 VALUES LESS THAN (2020), PARTITION p3 VALUES LESS THAN MAXVALUE );
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!