mysql index - Comment réorganiser (ou générer) des index pour les tables MySQL?
淡淡烟草味
淡淡烟草味 2017-05-18 10:52:38
0
3
974

1, description de l'arrière-plan
J'ai une table utilisateur, la structure de la table est la suivante :

L'index est la suivante :

Les données dans la table sont les suivantes :

Vous pouvez voir que les données du tableau sont triées par nom de famille. En effet, il existe un index multi-colonnes sur le nom de famille, le nom de famille, la ville et la clé primaire (index) sur l'ID utilisateur est ajoutée plus tard, donc l'ID utilisateur n'est pas ordonné. .
Existe-t-il un moyen de régénérer (ou d'organiser) l'index dans MySQL afin que les résultats de la requête de l'instruction « select userid, lastname from user » soient triés par userid par défaut ?

Remarque : Au lieu de forcer l'utilisation de l'index, sélectionnez l'ID utilisateur, le nom de famille, à partir de l'index de force utilisateur (primaire), régénérez ou organisez l'index (réorganiser).


Mise à jour le 29 avril

En fait, je veux demander s'il existe une commande dans MySQL qui peut réorganiser les index existants dans la table. Autrement dit, une fois la table mise à jour, supprimée et insérée pendant un certain temps, les données changeront (le la structure reste inchangée) ), alors les index de la table subiront diverses modifications en conséquence (comme la fragmentation sous-jacente, etc.), existe-t-il donc un moyen de réorganiser ou de régénérer ces index ? Sinon, l'index ne peut être que supprimé et reconstruit.


Mise à jour le 2 mai
J'ai ajouté un barré à la question d'origine. Il y a eu quelques problèmes avec la question initiale, en particulier la description ici est fausse : "Vous pouvez voir que les données dans le tableau sont triées par nom de famille. Ceci En effet, il existe un index multicolonne sur le nom de famille, le nom de famille et la ville et la clé primaire (index) sur l'ID utilisateur est ajoutée ultérieurement, donc l'ID utilisateur n'est pas ordonné. Vous pouvez voir que les données du tableau sont triées par nom de famille. c'est parce que dans lastname , il y a un index multi-colonnes sur familyname, city et la clé primaire (index) sur userid est ajoutée plus tard, donc userid n'est pas ordonné. " Quant à savoir pourquoi il n'est pas ordonné, @clcx_1315 a déjà répondu, et il a également souligné que même si pour réorganiser (générer) l'index, cette phrase sélectionne l'ID utilisateur, le nom de l'utilisateur ne peut pas trier l'ID utilisateur. J'ai cherché Baidu et il semble qu'il n'y ait aucune commande spécifiquement utilisée pour régénérer ou organiser les index dans MySQL, mais il existe une commande dans la base de données SQL Server. Si vous êtes intéressé, veuillez Baidu.

淡淡烟草味
淡淡烟草味

répondre à tous(3)
阿神

mysql utilise la table d'optimisation, mais il réorganise également la table en même temps.
Si le système connaît des périodes de pointe d'activité évidentes, il est également possible de supprimer l'index et de le reconstruire.

刘奇

Cette situation est due au fait que les autres colonnes en dehors de votre clé primaire sont un index composite lorsque vous interrogez, mysql ira directement à la table d'index pour trouver toutes vos données (l'index ordinaire mysql innodb stockera les informations de clé primaire ensemble) , elle est donc triée et récupérée selon le premier champ de votre index. Elle ne lit pas la table entière dans l'ordre entré dans le disque, mais la clé primaire est ajoutée dans l'ordre entré dans le disque, elle est donc séquentielle sur le disque, mais quand vous le lirez, La table d'index sera discontinue
Si vous souhaitez changer cette situation, ce sera pareil si vous reconstruisez la table Elle sera toujours triée par l'index du nom, sauf si. vous le saisissez dans l'ordre du nom de famille
Une autre façon consiste à ajouter un Pour les champs redondants, lorsque vous sélectionnez la table entière, vous n'utiliserez pas votre requête d'index de couverture mais une analyse complète de la table. Bien sûr, les clés primaires le feront. être disposés de manière séquentielle.

伊谢尔伦

Je me souviens que MySQL reconstruira également automatiquement l'index en fonction de la situation de votre index, mais rien n'a été trouvé spécifiquement.
Laissez le soin à quelqu'un qui est destiné à répondre

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!