Petite humeur (vous pouvez passer directement à la ligne de démarcation)
Je suis de meilleure humeur aujourd'hui. Certaines mauvaises émotions fortes qui n'ont pas pu être résolues se sont progressivement dissipées après avoir résolu un problème logique complexe la nuit.
Quand je suis allé manger à midi aujourd'hui, frère Kun a dit avec désinvolture : « J'ai enfin réalisé une vérité après tant d'années. Les gens ne devraient pas travailler si dur quand ils sont jeunes, car ils n'ont pas le temps de faire autre chose. choses'
Quand j'ai posé des questions sur d'autres sujets, frère Kun m'a jeté un coup d'œil et a continué à dire avec désinvolture qu'il était tellement occupé qu'il n'avait pas le temps de tomber amoureux.
Je pense que c'est bien de ne pas travailler si dur ? Les prix de l’immobilier augmentent chaque année et le coût de la vie augmente de jour en jour. Si vous ne travaillez pas dur pour créer votre propre valeur, l’argent que vous gagnez dépasse le taux de croissance économique. Alors nous ne pouvons que continuer à être des perdants au bas de l’échelle sociale, continuer à vivre dans la douleur des beaux jours de la jeunesse.
Ce n'est qu'en travaillant dur, travailler dur ne suffit pas, ce n'est qu'en travaillant assez dur que vous pourrez gagner un petit avantage dans la compétition avec les autres.
C’est très pénible de travailler si dur et la vie est très monotone. Quelle fille aimerait ce genre de vie ?
Je pense que le déclin de mon intelligence émotionnelle et de mes compétences relationnelles au cours des six derniers mois est lié à ma concentration sur la programmation.
Au départ, je voulais utiliser ces mots pour parler à frère Kun, mais les mots sont finalement restés coincés dans ma gorge et je ne les ai pas dit.
Chacun a son propre chemin à emprunter, qu'il soit solitaire ou vif, c'est son choix.
Quand on choisit un chemin, on doit abandonner beaucoup de choses.
Je suis prêt à l'obtenir, donc je suis encore plus prêt à le perdre.
Après le coup de gueule, le texte commence :
C'est quoi l'index ? Les étudiants qui se laissent facilement tromper par les termes professionnels devraient prendre l'initiative de lire l'explication populaire sur Baidu : un outil pour récupérer des livres et du matériel. Classer et extraire le contenu ou les éléments de livres et de périodiques, indiquer le nombre de pages, les disposer dans un certain ordre et les joindre à un livre, ou les compiler dans un volume séparé pour la commodité des lecteurs. Anciennement appelé inspection générale ou inspection de préparation. Aussi appelé plomb.
Le chapitre « Technologie de base MySQL et meilleures pratiques » est excellent, donc la plupart du contenu d'aujourd'hui est un résumé de ce qu'il y a dans le livre.
Comprenez l'index d'une manière plus simple : l'index est la partie devant le dictionnaire Xinhua qui recherche les mots par pinyin et par radicaux.
Dans la vie, si vous ne connaissez pas la prononciation d'un mot rare et n'utilisez pas de traits pour le rechercher, il peut être très difficile de le trouver. Si vous laissez une machine faire cela, cela signifie. recherche de tous les mots du mot entier du dictionnaire, renvoyés après correspondance. Cela entraîne une analyse complète de la table, ce qui est très inefficace.
Mais si nous le recherchons par radicaux, puis par traits, la quantité de données que nous pouvons rechercher est très faible. Laissez la machine le faire et analysez simplement les éléments de données pertinents, ce qui est très rapide. .
Par conséquent, la vitesse de requête n'a pas de relation absolue avec la taille des données. La vitesse de requête dépend du nombre de données de table récupérées et du nombre d'éléments de données de table analysés. Plus leur rapport est petit, plus l'efficacité est élevée.
Plusieurs points de connaissances importants :
1. Lorsque MySQL récupère des données dans la table, il recherche d'abord dans l'index en fonction de la valeur du "mot-clé" de l'index. s'il est trouvé, vous pouvez localiser directement la page de départ. Dans le cas contraire, l'intégralité du tableau sera analysée.
En écoutant la chanson "Forget Him" de Liu Xijun, j'ai commencé à résumer le contenu suivant.
2. L'index est en fait une copie de la valeur du champ dans la table de la base de données, et le champ modifié est appelé la clé de l'index.
3. Une table de données peut créer plusieurs index.
4. Qu'est-ce qu'un index de préfixe :
Comment utiliser « l'index radical » dans le dictionnaire Xinhua. Tout d’abord, nous confirmons d’abord quel est le radical du mot que nous voulons trouver, puis examinons les traits du mot en dehors du radical, puis recherchons le mot correspondant. De même pour les tables de base de données, la valeur du mot-clé dans l'index peut faire partie du "mot-clé" de l'index. Ce type d'index est appelé "index de préfixe". Par exemple, je peux créer un index de préfixe pour la table de noms. dans la table utilisateur. Comptez les noms de famille de Zhang dans le nom. Nombre de personnes nommées Li
5. L'index peut-il être une combinaison de champs
Pour la base de données. , l'index peut être une combinaison de champs dans la table de la base de données. Lorsque l'index est composé de plusieurs mots-clés, on parle d'index composite. Que l'index soit un champ ou une combinaison de plusieurs champs, ces champs doivent provenir du même. table, et la valeur du mot-clé Bianche doit être le champ correspondant dans la table.
6 L'index ne peut pas être créé entre les tables
7. espace de stockage supplémentaire ?
Cette question est absurde, par exemple, si vous voulez La vache court bien, mais je veux que la vache ne mange pas d'herbe Le fichier d'index doit occuper de l'espace de stockage. la table de base de données, la clé d'index est placée dans la mémoire externe après le tri. Pour la table de base de données MyISAM, l'index est stocké à l'extérieur dans les fichiers d'index MYI. Pour le moteur de stockage InnoDB, les données d'index sont stockées dans des fichiers d'espace table InnoDB externes. (qui peuvent être des fichiers d'espace table partagés ou des fichiers d'espace table exclusifs), quel que soit MyISAM. L'index de la table est toujours un index InnoDB. Les mots-clés de l'index sont triés par ordre croissant et placés dans la mémoire externe. 🎜> 8. Quels champs de la table peuvent être sélectionnés comme index de la table ? Qu'est-ce que l'index primaire et qu'est-ce qu'un index clusterisé ?
Pour les tables MyISAM, MySQL indexera automatiquement la sauvegarde des valeurs de clé primaire de tous les enregistrements de la table et la page de démarrage de chaque enregistrement. Une « table d'index » est générée et stockée dans la mémoire externe comme une table de recherche radicale. Cet index est appelé clé primaire. Le fichier d'index MYI de la table MyISAM et le fichier de données MYD se trouvent dans deux fichiers. Grâce au « pointeur d'enregistrement de table » dans le fichier d'index MYI, vous pouvez trouver l'adresse physique où se trouve l'enregistrement de table dans le fichier de données MYD.
L'index primaire de la table Innodb est différent de l'index primaire de la table MyISAM. L'ordre des clés d'index primaires de la table InnoDB est cohérent avec l'ordre des valeurs de clé primaire enregistrées dans la table InnoDB. Ce type d'index est appelé « index clusterisé » et chaque table ne peut avoir qu'un seul index clusterisé.
9. Quelle est la relation entre l'index et la structure des données ?
Les règles de stockage des mots-clés dans la base de données dans le fichier d'index sont très complexes. Afin d'améliorer efficacement l'efficacité de la récupération des bases de données. Les index sont généralement « organisés » à l'aide de structures de données complexes telles que des arbres équilibrés (btrees) ou des tables de hachage. Lors de l'exploitation de la base de données, les opérations sous-jacentes effectuent des opérations très complexes, mais nous ne pouvons pas le ressentir.
10. Est-il préférable d'avoir plus d'index ?
S'il y a trop d'index, lors de la mise à jour des données (ajout, modification, suppression), en plus de modifier les données dans la table, tous les index de la table doivent également être conservés pour conserver les valeurs des champs de la table et indexe la cohérence de la valeur des mots clés. Au contraire, cela réduit la vitesse de mise à jour des données.
Pratiquez les noms de table. Lorsque les opérations de modification des enregistrements de table sont particulièrement fréquentes, un trop grand nombre d'index entraînera une augmentation significative du nombre d'E/S du disque dur, ce qui réduira considérablement les performances du serveur. Cela peut même entraîner des temps d'arrêt.
11. Principes de sélection des mots-clés de l'index.
Principe 1. Plus la dispersion d'un champ dans le tableau est élevée, plus le champ est adapté comme mot-clé sélectionné pour l'indexation.
Lorsqu'un utilisateur de base de données crée une contrainte de clé primaire, MySQL créera automatiquement un index primaire (index primaire) et le nom de l'index est primaire lors de la création d'une contrainte unique, MySQL créera automatiquement une contrainte unique (index unique) ) Par défaut, le nom de l'index est le nom du champ de la contrainte de liaison unique.
Principe 2. Les champs qui occupent moins d'espace de stockage sont plus adaptés pour être sélectionnés comme mots-clés pour l'indexation.
Principe 3. Les champs avec un espace de stockage fixe sont plus adaptés pour être sélectionnés comme mots-clés pour l'indexation.
Principe 4 : des index doivent être créés pour les champs fréquemment utilisés dans les clauses Where, des index doivent être créés pour regrouper des champs ou trier des champs, et des index doivent être créés pour les champs de connexion entre deux tables.
Hier soir, je n'arrivais pas à m'endormir. En parcourant l'espace, j'ai appris que mon amie était en train de divorcer. C'était la fille que j'aimais à l'université. À cause de son caractère volontaire et pour d'autres raisons, nous nous sommes réunis pendant une courte période, puis nous nous sommes séparés. Je ne suis mariée que depuis un an et j'ai un enfant. Mon cœur me fait soudain mal et je rêve de retourner dans le passé. Cette nuit-là, quand les étoiles remplissaient le ciel, j'étais têtu et volontaire, et elle était chaleureuse et parfumée. Oubliez ça, il vaut mieux ne pas être triste de ces choses, tout le monde est voué à mourir. Je ferais mieux de coder correctement.
Le but de l'introduction de l'index est d'améliorer l'efficacité de la récupération, de sorte que la sélection des mots-clés de l'index est étroitement liée à l'instruction select. Cette phrase a deux significations. La conception de l'instruction select peut déterminer la conception de l'index ; la conception de l'index affecte également la conception de la sélection. Les clauses Where, Group By et Order By dans l'instruction select peuvent également affecter la conception de l'index. Des index doivent être créés pour les champs de lien des deux tables. Une fois la contrainte de clé étrangère créée, MySQL créera automatiquement un index correspondant à la clé étrangère. En effet, le champ de clé étrangère est généralement le champ de connexion des deux tables.
Principe 5. Les champs fréquemment mis à jour ne conviennent pas à la création d'index, et les champs qui n'apparaissent pas dans la clause Where ne doivent pas être indexés.
Principe 6. Le principe du préfixe le plus à gauche.
Il existe un autre avantage de l'index composé, qui se reflète dans le concept appelé "préfixe le plus à gauche". On suppose que plusieurs champs d'une table (tels que prénom, nom, adresse) sont créés. Index composite (index nom : prénom_nom_adresse). Lorsque la condition de la requête Where est une combinaison des champs suivants, MySQL utilisera l'index fname_lastname_address. L'index fname_lastname_address ne sera pas utilisé dans les autres cas.
prénom, nom, adresse
prénom,;nom
prénom
Principe 7. Essayez d'utiliser des index de préfixes.
Créez un index uniquement sur la partie nom de famille du nom, ce qui peut économiser l'espace de stockage de l'index et améliorer l'efficacité de la récupération.
Comme la conception de bases de données, la conception d'index nécessite également l'accumulation d'expérience et de sagesse des développeurs de bases de données. En même temps, il est nécessaire de concevoir de meilleurs index en fonction des caractéristiques respectives du système. efficacité" et faites un équilibre entre "réduire la vitesse de mise à jour". Cela améliore considérablement les performances globales de la base de données.
Relation d'indice et de contrainte :
Quelle est la relation entre les index et les contraintes dans MySQL. Les contraintes sont divisées en contraintes de clé primaire, contraintes uniques, contraintes de valeur par défaut, contraintes de vérification, contraintes non nulles et contraintes de clé étrangère. Parmi elles, les contraintes de clé primaire, les contraintes uniques, les contraintes de clé étrangère et les index sont plus étroitement liés.
Les contraintes sont principalement utilisées pour garantir l'intégrité de la base de données lorsque la logique métier exploite la base de données.
L'index stocke les données de mots-clés dans la mémoire externe dans une certaine structure de données (telle que btree, arbre binaire, hachage, etc.) pour améliorer les performances de récupération des données.
Les contraintes sont des concepts au niveau logique, tandis que les index ne sont pas seulement des concepts logiques, mais aussi une méthode de stockage physique, et le fait qu'ils existent nécessite une certaine quantité d'espace de stockage.
nom de l'index index unique
nom de l'index index ordinaire
index index_complexe (prix, heure de publication) index composite
La plupart du contenu de cet article est extrait Concernant "MySQL Core Technology and Best Practices", les amis intéressés peuvent acheter ce livre et le lire. Il est vraiment bien écrit.
Ce qui précède est le contenu des notes d'étude Mysql (4) sur l'indexation des bases de données. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !