Maison >base de données >tutoriel mysql >Méthodes d'optimisation des requêtes de base de données

Méthodes d'optimisation des requêtes de base de données

一个新手
一个新手original
2017-10-13 10:45:294009parcourir

Optimisation des requêtes de base de données

Méthodes d'optimisation des requêtes de base de données

1. L'utilisation d'index

doit essayer d'éviter les analyses de table complètes, commencez par déterminer où et trier par, créer un index sur les colonnes impliquées dans group
by.

2. Optimiser les instructions SQL

  • Utiliser expliquer (artefact d'optimisation des requêtes) pour vérifier l'effet d'exécution des instructions SQL
    peut aider. Choisissez de meilleurs index et des instructions de requête optimisées, et rédigez des instructions mieux optimisées.

  • N'utilisez nulle part select * from table, remplacez "*" par une liste de champs spécifique et ne renvoyez aucun champ inutilisé.

  • N'effectuez pas d'opérations ni n'utilisez de fonctions sur les colonnes d'index.

  • Les utilisations des requêtes limitent autant que possible pour réduire le nombre de lignes renvoyées, réduisant ainsi le temps de transmission des données et

    le gaspillage de bande passante.

3. Optimiser les objets de la base de données

  • Optimiser le type de données de la table


    Procédure d'utilisation La fonction analyse() analyse le tableau et cette fonction peut faire des suggestions d'optimisation pour les types de données des colonnes du tableau. Utilisez-en petit si vous le pouvez. Le premier principe des types de données de table est le suivant : utilisez le type le plus court capable de représenter et de stocker correctement les données. Cela réduit l'utilisation de l'espace disque, de la mémoire et du cache du processeur.

  • Diviser la table

    * Division verticale
    Mettez la clé primaire et quelques colonnes dans une table, puis placez la clé primaire et les autres colonnes dans un autre milieu de table. Si certaines colonnes d'un tableau sont couramment utilisées et d'autres non, vous pouvez utiliser la division verticale.
    * Division horizontale
    Place les lignes de données dans deux tableaux indépendants en fonction des valeurs d'une ou plusieurs colonnes de données.

  • Utilisez une table intermédiaire pour améliorer la vitesse des requêtes

    Créez une table intermédiaire, la structure de la table est exactement la même que la structure de la table source, transférez les données à compter vers l'intermédiaire table, puis effectuez des opérations sur la table intermédiaire Statistiques, obtenez les résultats souhaités

4. Optimisation matérielle

  • Optimisation du processeur

    Choisissez le multicœur et un processeur avec une vitesse d'horloge élevée.

  • Optimisation de la mémoire

    Utilisez une mémoire plus grande. Allouez autant de mémoire que possible à MYSQL pour la mise en cache.

  • Optimisation des E/S disque

    * Utiliser une baie de disques
    * Ajuster l'algorithme de planification de disque
    Choisir l'algorithme de planification de disque approprié pour réduire le temps de recherche de disque

5. Optimisation de MySQL lui-même

L'optimisation de MySQL lui-même concerne principalement les paramètres de son fichier de configuration my.cnf

Effectuer des ajustements d'optimisation. Par exemple, spécifiez la taille du tampon de requête MySQL, spécifiez le nombre maximum de processus de connexion autorisés par MySQL, etc.

6. Optimisation des applications

    Utiliser le pool de connexions à la base de données
  • Utiliser le cache de requêtes
  • Son rôle est de stocker le texte de la requête de sélection et ses résultats correspondants. Si la même requête est reçue ultérieurement, le serveur obtiendra les résultats de la requête directement à partir du cache de requêtes. Le cache de requêtes convient aux tables rarement mises à jour. Lorsque les données de la table changent, les entrées pertinentes dans le cache de requêtes seront effacées


  • .

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn