Utilisation des index
En utilisant les indices rend plus rapide la requête de la même manière que d'un index dans un livre aide à la recherche d'un mot particulier.
Pour savoir comment et où des indices sont utilisés dans une requête, utilisez la commande EXPLAIN comme préfixe pour sélectionner requête.
EXPLAIN SELECT ORGN_DATA emp_id DE CAS dept_code = 'IT';
Cette commande renvoie les informations suivantes:
Table - table Quelle (s) sont utilisés dans la requête
Type - type de jointure. Les valeurs peuvent être du système, const, eq_ref, ref, range, index, tous les
Possible Keys - Toutes les clés qui peuvent être utilisés pour les indices
Key - La clef effectivement utilisées pour l'indice
Longueur de clé - les touches sont plus courtes
Ref - Autres colonnes utilisées avec la clé pour obtenir des résultats
Rows - Nombre de lignes de données où seront
Extra - Extra information. Certaines valeurs peuvent être possible en utilisant l'index, en utilisant le cas, à l'aide temporaire, en utilisant filesort
Vous devriez revoir votre structure de table si possible Keys contenir la valeur NULL.
Une valeur NULL dans la clé indique qu'aucun indice est utilisé. Utilisation pas dissuader les indices de performance, si il ya trop d'enregistrements dans la table, parce que, pour toute question, tous les enregistrements seront recherchées pour cette condition.
Utilisez la commande ALTER d'ajouter des index comme indiqué ci-dessous:
ALTER TABLE nom_table ADD INDEX (column_name);
Vous pouvez faire l'indexation sur plusieurs colonnes en utilisant:
ALTER TABLE nom_table ADD INDEX (column_name1, .., column_nameN);
MySQL utilise les préfixant de gauche, donc automatiquement des index seront ajoutés pour column_name1, (column_name1, column_name2 ),...( column_name1, .., column_NameN-1). Ceci est très utile dans des situations comme la recherche basée sur le nom d'un indice sur la manière (nom, prénom, middlename) sera automatiquement ajouter plusieurs indices utilisés dans les requêtes plus rapidement.
Points à retenir:
- Choisissez la colonne (s) pour l'indexation de très près.
- Répertorié champs doivent être utilisés pour la recherche et la requête doit être ré-encadrée, si le calcul est effectué sur les champs indexés.
- Index prend, lui-même l'espace de stockage.
- Chaque opération sur la base de données nécessite une mise à jour l'index ainsi.
- Une petite clé Longueur signalés par la commande EXPLAIN est meilleure. Les petites clés longueur moindre espace de stockage est requise par l'index des fichiers et aussi que le temps de recherche dans l'index est inférieur. Pour cela, les indices peuvent être définies sur une partie de colonnes. Par exemple, INDEX (col1 (10), col2 (20)). Encore une fois, vous avez à décider judicieusement ce que la longueur de colonnes à utiliser pour l'indexation.
Utilisation de la commande ANALYZE
Utilisez la commande ANALYZE à générer des clés de répartition de la table pour être utilisé par l'optimiseur de requêtes MySQL à décider quels sont les meilleurs indices à utiliser dans une requête.
ANALYZE TABLE table_name;
Utilisation de la commande OPTIMIZE
Si il ya trop d'inserts / suppression dans un tableau de commande doit alors être OPTIMISER fréquemment utilisés pour optimiser la circulation au cours de la tête du disque de récupération. Ceci est particulièrement utile si les colonnes de taille variable sont utilisées comme varchar, texte, etc blob OPTIMISER commande de défragmentation de la fragmentation causée par les champs de longueur variable comme VARCHAR.
OPTIMIZE TABLE table_name;
Utilisation des fonctions spéciales pour le chargement des données
Pour charger les données d'un fichier dans une table de base de données, l'utilisation de LOAD DATA INFILE est beaucoup plus rapide que la lecture des données de façon itérative et en utilisant le fichier de commandes INSERT. La syntaxe de cette commande est:
LOAD DATA INFILE 'filedata.dat' INTO TABLE table_name (col1, col2 ,..., Colm) FIELDS TERMINATED BY'|'");
Réglage des commandes PRIORITY
Si il ya plus de questions que l'insertion de données, vous mai de priorité plus faible en utilisant la commande INSERT:
LOW_PRIORITY INSERT ou SELECT HIGH_PRIORITY
Si le client n'est pas intéressé par les résultats de INSERT, alors il peut être immédiatement libéré en utilisant la commande suivante:
INSERT DELAYED.
Ceci rend le système plus rapide de dosage par des insertions.
DELETE vs TRUNCATE
DELETE supprime, ligne par ligne, tandis que TRUNCATE supprime toutes les lignes à la fois. Donc, si vous n'êtes pas intéressé par le nombre de lignes supprimées de la table à la suite de la commande DELETE, puis d'utiliser TRUNCATE avec la syntaxe suivante:
TRUNCATE TABLE table_name;
Réduire la permission de contrôle généraux
Simplification de l'autorisation de réduire les autorisations de contrôle des frais généraux. Utilisez la commande GRANT pour définir les permissions. La syntaxe générale de subvention:
GRANT Oper1 ,..., Opern ON A db_name.tb_name user_name @ nom_ordinateur IDENTIFIED BY mot de passe
Par exemple:
GRANT SELECT, UPDATE ON EMP_DET.SALARY_DET À Feroz @ localhost IDENTIFIED BY 'abc123';
Si l'utilisateur de compte »Feroz 'est pas là, alors il sera créé sur localhost (bien que l'utilisateur peut accéder aux données depuis n'importe quel ordinateur) et votre mot de passe' abc123» sera attribué.
Utilisez BENCHMARK () function
Pour savoir combien une fonction ou une expression MySQL est de prendre le temps, l'utilisation de MySQL construit en fonction:
BENCHMARK (loop_count, expression)
Elle retourne toujours 0, mais aussi des tirages temps pris par l'expression.
Synchrozing types de données
Si les colonnes dans les tables contiennent des informations identiques, puis de leur faire aussi des types de données de sorte que même joint peut être effectuée plus rapidement.
Divers
- Insérer plusieurs lignes avec une instruction SQL.
- Suppression des parenthèses inutiles dans la clause WHERE.
- Si SQL_SMALL_RESULT option est utilisée, MySQL utilise temporaire en mémoire des tableaux qui fournissent un accès plus rapide.




Delicious
Digg
Google
Yahoo