Skip to main content



Pour MySQL participant, je ne sais pas si vous devez penser à votre processus d'exécution ou non? Votre propre suspicion comprend (confiant, en pensant!); Si vous ne savez pas comment vérifier, vous pouvez essayer les questions suivantes:
1. Sélectionnez la table de lecteur

MySQL Comment sélectionner la table d'entraînement, cliquez sur le premier de gauche à droite?

2. La séquence de multiples connexions

Supposons que nous avons 3 tables: A, B, C et SQL
- Pseudo SQL, peut ne pas être fait directement

un côté gauche B sur b.Aid = a.id


Rest c Participation C sur C.Aid = A.Id

Nom = '666' et b.state = 1 et c.create_time & gt; '2019-11-22 12:12:30'


est A et B le résultat de la table commune après traitement, et la réduction de C. ou après A, B et C seront filtrants Encore une fois, ou des gens disent que ces deux choses sont fausses, avoir d'autres méthodes de traitement?

3. ON, dans lequel le culteTemps effectif

Le propriétaire n'a pas l'intention d'accéder au poste de blog et il a l'introduction suivante

Extrait de MySQL - Rejoignez

Après avoir lu cet article, le propriétaire a trouvé le sentiment du nouveau continent. L'exécution originale est comme celle-ci (ne pas renverser la conscience cognitive, car le propriétaire n'a jamais pensé à cette question, mais il y a une nouvelle compétence à satisfaire), plus vous voulez avoir mal, et que vous vous sentiez comme une compétence d'erreur.

S'il y a des centaines de dizaines de milliers de données dans les deux tables, deux tables sont de plusieurs tables et les résultats ne veulent pas imaginer! Cela signifie que l'ordre de l'image est toujours maladroit, l'heure effective d'entrer et l'endroit attend également.


II. Préparer une prémisse

1. Tableau d'entraînement

 


Quelle est la table d'entraînement, mentionnant de nombreuses requêtes liées à la table? Lorsque la fée de la tête de la table est manipulée, On peut également appeler la table de base, puis utiliser l'enregistrement de cette table pour contacterLier des tables supplémentaires. La sélection de la table d'entraînement selon un principe: dans le principe de l'impact sur le jeu de résultats final, le tableau a le résultat d'au moins au moins au moins au moins la table du conducteur. Ce principe ne comprend pas, le jeu de résultats est au moins une estimation, mais cela n'affecte pas l'ensemble de résultats final, il n'est pas évalué, il est difficile de revenir, mais il y a une règle certainement:

La participation restante est sur la table de gauche (à droite à droite). Participer à l'intérieur généralement en utilisant quelques tables faisant des conducteurs de la carte. Si vous vous sentez toujours douteux, vous pouvez utiliser l'explication pour trouver la table d'entraînement. La première table de ses résultats est une table d'entraînement.


Pensez-vous que l'explication est sûre? Le plan de mise en œuvre peut changer quand il est réellement effectué!

s'appliquent, spécialement expliqué

La participation restante sera optimisée pour participer à l'intérieur dans certains cas; Défini pour faire référence au lien qIl est enregistré dans le tableau, pas tous les enregistrements de la table. Si la condition de filtrage est tout enregistrement

 


2. Organigramme exécutable SQL


Lorsque nous soumettons une demande à MySQL, MySQL affiche en fait quelque chose

Chemin d'exécution SQL, tiré de "High Performances MySQL"

on peut voir que l'emballage exécutable est la sortie de l'optimiseur de la requête de sortie. Data requête le suivi du moteur d'exécution sur le package d'exécution


3. Préparez des données

MySQL 5.7.1, moteur InnoDb; SQL et les données initiales SQL


- Création et initialisation des données de table de chute si TBL_USER existe; Créer TBL_USER Table (
ID INT (11) NE PAS marquer NON NULL Auto_Increment Review 'Auto-améliorement', User_Name Varchar (50) Aucun commentaire NULL (nom d'utilisateur ',

Tinyint (1) Not Null Review 'Sexe, 1: Homme, 0: Femme',


Créé_time DateTime Aucun commentaire null 'Créer',
UPTATE_TIME DateTime non NULL commentaire 'Heure de mise à jour',
Notes de Varcharar (255) NULLES NULLES DEFAUT 'NOTES' 'NOTES', TOUTE PRIMAIRE (ID)

] Commentaire = "Table utilisateur"; Table de chute si elle existe tbl_user_login_log; Créer TBL_USER_LOGIN_LOG Table (

ID INT (11) Non signé USS_INCREMENT COMMENTAIRES 'KEY-KEY AUTO-KEY', User_Name Varchar (50) Aucun avis NULL 'Nom d'utilisateur',
IP Varchar (15) Not Null Commentaire 'Inscription IP',

Tinyint Client (1) No Null Review Terminé, 1: Android, 2: IOS, 3: PC, 4: H5 ',

Creat_Time DateTime Ne pas NULL Commentaire 'Créer l'heure', la clé primaire (ID)
) Remarques = "Login log"; Insérer TBL_USER (nom_utilisateur, sexe, recrée_time, update_time, commentaires) ('Il Tianxiang', 1, maintenant (), maintenant (), 'Langmei Star, une table de personnes')
xue huixiang ', 0, maintenant (), maintenant (), titulaire de la maison du bâtiment étoile, fille de Xue Huahong, filleG est un petit bâtiment du bâtiment étoilé, le corps est très riche et élégant. Se référant à l'oignon du printemps, le bras de la manche est Jade, le vent est un boom, noble et élégant, appelé "Xiangxiang star" des arts martiaux ")
(" Murong Lanjuan ', 0, maintenant (), Maintenant (), 'Wulin Sud-Est du Nord-Ouest Quatre filles célibataires de Murong Changrong Changming, ont donné naissance à une touche exquise et jade, le tempérament est juste anxieux cependant, et c'est heureux, alors tout le monde envoie le surnom "Fire Phoenix", mais en plus aux arts martiaux de Wulin, arts martiaux, arts martiaux de Xue Shenxiang ',
(' 苌 ting ', 0, maintenant (), maintenant (),' Petit empereur de prostituée, district de North Wangfu, taille glissante, tout sur le corps, sourcils, Lipurahong Sakurahong; bien qu'il n'y ait pas de vieillissement, Lan Juan au chaud, mais ne sortez pas d'un étiol ').

(' Liu Guoyuan ', 0, maintenant (), maintenant (), 'Wulin Un de quatre tristesse, fée, apparence, l'apparence, la beauté, c'est vraiment de l'eauL'automne est un bijou qui est un os et des fleurs hibiscus comme une taille, des sourcils dessinés, des lèvres est quelque part, il n'y a pas de la moitié des points occidentaux faibles, de nombreux anneaux de shengyu, des rochers, une écoute de pluie, des milliers d'argent! '),


(' Li Jingue ', 0, maintenant (),' Li Xiangguo fille, Dieu, l'Angleterre, l'amour, l'amour, 爱,
('Dream Dream Weekly, 0, Maintenant (), maintenant (), '音 神 神 神 神 琴 神, portant du noir 翼 ,, SUD ST la peau comme une neige, des vêtements blancs vibrant, comme Une fée, souriant, une beauté douce ne peut pas dire,

('Guo Shi Shadow', 0, maintenant (), maintenant (), '灰 Instantanément d'un académique, montrant des sourcils Jade muscles, Jiao Runxin '),

(' Zhong Yitian ', 0, maintenant (), maintenant (),' Tianjie, Xuan Tian neuf - 天天 天, 天人人 人),
('Wang Yan Yun ', 0, maintenant (), maintenantOh (), «la poussière a manqué, 蛮 '),


(' Xu Yingshu», 0, maintenant (), maintenant (), 'Pharmaceutique Wang Valley Lord Girl, Health Obstel'),

['Feng Ding',门,如 如, 千 百 艳 百 百); Insert dans tbl_user_login_log (nom_utilisateur, IP, client Cree_Time Valeurs) ('Xue Xue Xiang', '10 .53,56, 78 ', 2,' 2019-10-12 12:23:45 '),


(' 苌 Ting ', '10 .53,56.78', 2, 2019-10-12 22:23 : 45 ')

(Murong Lanjuan', '10 .53 56,12 ', 1,' 2018-08-12 22:23:45 '),

(' Il Tianxiang '10 .53 .53 .56.12 ', 1,' 2019-10-19 10:23:45 '),

' 198.1132.198 ', 2, 2018-05-12 22 : 23: 45 '),

("Feng Siki", "198.11.132.13298", 2, "2018-11-11 22:23:45'),

(" 113 ] ('Dream hebdomadaire, "198.11.132.198", 2, "2019-06-12222.198"),

("Guo Shi Shadow'," 220.181.38.148 ", 3, ' 2019-10-21 09:45:56 '),

' 220.181.38.348 ', 3,' 2019-26 22:23:45 '),


(' 苌 ting ',' 104.69 .160,60 ', 4,' 2019-10-12 10: 23: 45 '),
(Wang Yan Yun','104.69.160.61', 4, '2019-10-16 20:23:45'),

(Li Ji Xue ',' 104.69.160.62 ', 4, 2019-10-17 20: 23:45 '),


(Xu Yushuang »,' 104.69. 160,63 ', 4, 2019-10- 18 20:23:45'),
('yeuo,'104.69.160.64', 4, '2019-10-19 20:23: 45'),
, 'Wang Yan Yun', "104,69,160,65 ', 4, 2019-10-20 20:23:45 '),
(«Feuilles»,' 104.69.160.66 ', 4, 2019-10-21 20: 23: 45');

Sélectionnez * de Tbl_User;

Choisissez * à partir de TBL_USER_LOGIN_LOG;


4. Quertiez la table unique

La fois que le processus de requête de table est mieux compris, comme le suivant

À propos de la requête unique de la table, principalement liée à l'index de cluster, Index de couverture, opération de retour, connaître ces 3 points, l'image ci-dessus est comprise


III. ALGORITHM LED

L'algorithme de la voie MySQL est une série d'algorithmes basés sur des algorithmes nichés imbriqués imbriqués imbriqués. Distinguer selon différentes conditions. Algorithme

En cas d'utilisation d'une association d'index, il existe deux algorithmes d'indice de connecteur imbriqué et Participer à l'accès à verrouillage connecté sans utiliser l'association d'index. Boucle simple imbriquée impliquée et bloquée en boucle de jointure imbriquée, deux algorithmes 1. Boucle imbriquée simple Cycles imbriqués simple, appelé SNL; Combinant un par un, comme celui-ci pour chaque ligne de la plage conformément à T1 { pour chaque ligne de la référence de verrouillage conformément à T2 { pour chaque ligne de T3 { Si les marchandises répondent aux conditions participantes, veuillez envoyer à l'invité. } Cet algorithme est très simple et impoli, mais aucune performance et la performance est m (table dans la table). Quantité), donc mySQL a été optimisé et cet algorithme n'apparaît pas lorsque le programme de lancement est requis, même sans conditions et les boutons de connexion ne disposent pas d'index sur le bouton de connexion, il n'utilisera pas cet algorithme 2. Bloquer les anneaux imbriqués nichés Connectez des boucles imbriquées, mentionnées sous forme de BNL, est une optimisation inl; Le cache une fois de nombreuses données de table de données à rejoindre le tampon, puis correspond au lot de données dans le tampon participant pour correspondre aux données lues par la couche interne, comme celle-ci ] Pour chaque ligne de la gamme T1 {match pour chaque ligne de la clé de référence conformément à la mémoire T2 { de la colonne utilisée à partir de T1, T2 dans le tampon Si le tampon rempli pour chaque ligne de T3 {combiné T1, T2 dans des tampons tampons à rejoindre {si une ligne satisfaisanteConditions, envoyées aux clients } Buffer participant vide } } } Si le tampon n'est pas vide pour chaque ligne T3 {pour chaque T1, Combinez T2 dans les conditions participantes, envoyer aux clients } } } La comparaison de chaque ligne est lue dans le cycle interne afin que tous les enregistrements dans le tampon de sorte que tous les enregistrements dans le tampon de sorte que Le nombre de lectures du cycle de la couche interne peut être réduit. Par exemple, s'il n'y a pas de tampon participant, le formulaire de lecteur comporte 30 enregistrements et des formulaires d'entraînement avec 50 enregistrements, puis le nombre de lectures du cycle de la classe interne doit être de 30 * 50 = 1500, si possible à l'aide du tampon participant et peut sauvegarder 10 enregistrements (rejoindre le tampon stocké dans la liste des pilotes, y compris la colonne de sélection, la colonne du tour, la colonne d'un lieu, au lieu de l'enregistrement complet radioactif dans la table d'entraînement), puis le cycle de la couche interne doit être lu. Il est 30/10 * 50 = 150 et le nombre de temps contrôlés doit être lu et le nombre de diminutions. lorsque la carte d'entraînementIl n'y a pas d'index sur le bouton de connexion et est contrôlé sur le cas des conditions de filtrage, cet algorithme est souvent utilisé pour compléter la table commune, comme en dessous 4. Boucle d'indice-boucle Les chaînes d'index nichées sont appelées INL, sur la base de l'indice du panneau de commande pour connecter la méthode; Les enregistrements de la table d'entraînement correspondent à l'index du panneau de commande, évitez et réduisent et réduisent chaque enregistrement de la table d'entraînement, réduisez le nombre de correspondances du panneau de commande, le processus approximatif est indiqué ci-dessous . Jetez un coup d'œil au cas réel, premier index supplémentaire change TBL_USER_USER_NAME (nom_utilisateur) à tbl_user_login_log en premier, voir l'emballage exécutable de la table générale . ] Voir l'index de TBL_USER_LOGIN_LOG, nous allons Voir Des choses intéressantes, la carte d'entraînement est devenue tbl_user_login_log, tbl_user devient une carte de lecteur et Tbl_user_login_log a été extraite après filtrage et aprèsCe résultat est transplanté avec TBL_USER via des algorithmes BNL. Ceci est vraiment optimisé par MySQL car TBL_USER_LOGIN_LOG suit le résultat du résultat des enregistrements TBL_USER après que TBL_USER_LOGIN_LOG est choisi comme carte de pilote et ce sera bon, est-ce bon? 5. Accédez à la serrure de la cuisse Accès le verrouillage du lot, appelée BKA, est l'optimisation de l'algorithme INL; L'optimisation de la bka d'INL est similaire à l'optimisation de BNL à SNL, mais il existe également différents. Quatre. Résumé du choix de la table d'entraînement a un ensemble d'algorithmes, des préoccupations, peut être volée; La méthode d'identification plus fiable consiste à utiliser l'explication, après deux ou deux combinaisons, puis passez à la troisième table, mais une enregistrement de la table d'entraînement en bas, la correspondance après l'horloge commune, la version suivante de la table de lecteur est ajouté la prochaine fois que la forme de la réceptionnelle est basée sur des algorithmes de cycle imbriqués, en fonction de différentes situations.

Sujets

Catégories