Maison base de données tutoriel mysql update优化一条。

update优化一条。

Jun 07, 2016 pm 03:55 PM
update 优化 语句

原语句 update HAHA a set (td03_flag) = (select td03_flag from z_temp1 b where a.user_id = b.user_id and lx = pz) Plan hash value: 1855602026 SQL_ID 62h7a9s7yyr18, child number 0------------------------------------- update HAHA a set (td03_

原语句

update HAHA a set (td03_flag) = (select td03_flag

from z_temp1 b where a.user_id = b.user_id and lx = 'pz')

Plan hash value: 1855602026
SQL_ID  62h7a9s7yyr18, child number 0
-------------------------------------
 update HAHA a set (td03_flag) = (select td03_flag
from z_temp1 b where a.user_id = b.user_id and lx = 'pz')

Plan hash value: 1855602026

-------------------------------------------------------------------------------------------------------------
| Id  | Operation                         | Name                    | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------------------------------
|   0 | UPDATE STATEMENT                  |                         |       |       |  8720M(100)|          |
|   1 |  UPDATE                           | HAHA 	            |       |       |            |          |
|   2 |   TABLE ACCESS FULL               | HAHA         	    |  2094K|    51M|  5404   (3)| 00:01:05 |
|   3 |   TABLE ACCESS BY INDEX ROWID     | Z_TEMP1                 | 24383 |   714K|  4163   (2)| 00:00:50 |
|   4 |    BITMAP CONVERSION TO ROWIDS    |                         |       |       |            |          |
|   5 |     BITMAP AND                    |                         |       |       |            |          |
|   6 |      BITMAP CONVERSION FROM ROWIDS|                         |       |       |            |          |
|*  7 |       INDEX RANGE SCAN            | Z_TEMP1_U               |  2438K|       |     3   (0)| 00:00:01 |
|   8 |      BITMAP CONVERSION FROM ROWIDS|                         |       |       |            |          |
|*  9 |       INDEX RANGE SCAN            | Z_TEMP1_L               |  2438K|       |  4108   (2)| 00:00:50 |
-------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------

   7 - access("B"."USER_ID"=:B1)
   9 - access("LX"='pz')

我们可以看第7步的谓词7 - access("B"."USER_ID"=:B1) 这种:B1 是一个变量,变量就有输入源,这里的变量的输入源就是第2步中的每一行 
Copier après la connexion

我们就可以简单理解为,就是第2步有多少条语句,第三步就要执行多少次(7是第三步的子步骤,从这一步开始,一直执行完整个 第3步) 这种行为即是Nested loop。

虽然这里有索引,但这里的整个过程,是 两个位图索引 bitmap and,并且会回表,都是单块读,其中回表的单块读在这里占大头(每次都有24383个单块读)的。 我们从统计信息看到 步骤2 有2094K 行 我们可以简单认为, 第三步 这个整个步骤(bitmap and +回表) 被整个执行了 2094K即200多万次。 不慢才怪 

优化后语句

explain plan for merge into HAHA a
using (select td03_flag, user_id
from z_temp1 b
where user_id in (select user_id
from HAHA where lx='pz')
) h
on (a.user_id = h.user_id)
when matched then
update set a.td03_flag = h.td03_flag;

这里需要创建两个索引

create index HAHA_IDX on HAHA(lx,user_id) ;
create index z_temp1_ind_uidtd03 on z_temp1(userid,td03_flag) ;

优化前SQL2个小时还没跑完

之后虽然执行时间对方没有反馈,但对方也没有再喊叫 看来满足需求了:)

优化虽易,乙方不易,且行且珍惜

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution à l'utilisation élevée du processeur de la télémétrie de compatibilité Microsoft Solution à l'utilisation élevée du processeur de la télémétrie de compatibilité Microsoft Mar 16, 2024 pm 10:16 PM

Lorsque nous utilisons le système Win10, nous rencontrons parfois des situations où l'ordinateur se bloque. Ensuite, lorsque nous vérifions le processus en arrière-plan, nous constatons qu'un processus de télémétrie de compatibilité Microsoft consomme une quantité de ressources particulièrement élevée. Les utilisateurs peuvent essayer de désinstaller le logiciel de protection tiers, puis essayer un démarrage en mode minimal pour fonctionner. Laissez ce site présenter soigneusement aux utilisateurs la solution à l'utilisation élevée du processeur par la télémétrie de compatibilité Microsoft. Solution à l'utilisation élevée du processeur de la télémétrie de compatibilité Microsoft Méthode 1 : essayez après avoir désinstallé le logiciel de protection tiers

KDE Plasma 6.1 apporte de nombreuses améliorations au populaire bureau Linux KDE Plasma 6.1 apporte de nombreuses améliorations au populaire bureau Linux Jun 23, 2024 am 07:54 AM

Après plusieurs pré-versions, l'équipe de développement de KDE Plasma a dévoilé le 28 février la version 6.0 de son environnement de bureau pour les systèmes Linux et BSD, utilisant pour la première fois le framework Qt6. KDE Plasma 6.1 est désormais livré avec un certain nombre de nouvelles fonctionnalités

Optimisation des programmes C++ : techniques de réduction de la complexité temporelle Optimisation des programmes C++ : techniques de réduction de la complexité temporelle Jun 01, 2024 am 11:19 AM

La complexité temporelle mesure le temps d'exécution d'un algorithme par rapport à la taille de l'entrée. Les conseils pour réduire la complexité temporelle des programmes C++ incluent : le choix des conteneurs appropriés (tels que vecteur, liste) pour optimiser le stockage et la gestion des données. Utilisez des algorithmes efficaces tels que le tri rapide pour réduire le temps de calcul. Éliminez les opérations multiples pour réduire le double comptage. Utilisez des branches conditionnelles pour éviter les calculs inutiles. Optimisez la recherche linéaire en utilisant des algorithmes plus rapides tels que la recherche binaire.

Fitbit Ace LTE reçoit une mise à jour majeure avec de nouveaux jeux, un paiement sans contact et d'autres fonctionnalités Fitbit Ace LTE reçoit une mise à jour majeure avec de nouveaux jeux, un paiement sans contact et d'autres fonctionnalités Aug 08, 2024 pm 09:39 PM

Le Fitbit Ace LTE a été officiellement lancé en mai, mais n'est actuellement disponible qu'aux États-Unis. La montre intelligente est spécifiquement destinée aux enfants, qui peuvent recevoir des récompenses pour leurs jeux grâce à un mode de vie plus actif, tandis que les parents peuvent toujours surveiller leur

Le goulot d'étranglement des performances de Laravel révélé : la solution d'optimisation révélée ! Le goulot d'étranglement des performances de Laravel révélé : la solution d'optimisation révélée ! Mar 07, 2024 pm 01:30 PM

Le goulot d'étranglement des performances de Laravel révélé : la solution d'optimisation révélée ! Avec le développement de la technologie Internet, l’optimisation des performances des sites Web et des applications est devenue de plus en plus importante. En tant que framework PHP populaire, Laravel peut être confronté à des goulots d'étranglement en termes de performances pendant le processus de développement. Cet article explorera les problèmes de performances que les applications Laravel peuvent rencontrer et fournira des solutions d'optimisation et des exemples de code spécifiques afin que les développeurs puissent mieux résoudre ces problèmes. 1. Optimisation des requêtes de base de données Les requêtes de base de données sont l'un des goulots d'étranglement de performances courants dans les applications Web. exister

La configuration des paramètres du Vivox100 révélée : Comment optimiser les performances du processeur ? La configuration des paramètres du Vivox100 révélée : Comment optimiser les performances du processeur ? Mar 24, 2024 am 10:27 AM

La configuration des paramètres du Vivox100 révélée : Comment optimiser les performances du processeur ? À l’ère actuelle de développement technologique rapide, les smartphones sont devenus un élément indispensable de notre vie quotidienne. En tant qu'élément important d'un smartphone, l'optimisation des performances du processeur est directement liée à l'expérience utilisateur du téléphone mobile. En tant que smartphone haut de gamme, la configuration des paramètres du Vivox100 a attiré beaucoup d'attention, en particulier l'optimisation des performances du processeur a attiré beaucoup d'attention de la part des utilisateurs. En tant que « cerveau » du téléphone mobile, le processeur affecte directement la vitesse de fonctionnement du téléphone mobile.

Comment optimiser les éléments de démarrage du système WIN7 Comment optimiser les éléments de démarrage du système WIN7 Mar 26, 2024 pm 06:20 PM

1. Appuyez sur la combinaison de touches (touche Win + R) sur le bureau pour ouvrir la fenêtre d'exécution, puis entrez [regedit] et appuyez sur Entrée pour confirmer. 2. Après avoir ouvert l'éditeur de registre, nous cliquons pour développer [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer], puis voyons s'il y a un élément Sérialiser dans le répertoire. Sinon, nous pouvons cliquer avec le bouton droit sur Explorateur, créer un nouvel élément et le nommer Sérialiser. 3. Cliquez ensuite sur Sérialiser, puis cliquez avec le bouton droit sur l'espace vide dans le volet de droite, créez une nouvelle valeur de bit DWORD (32) et nommez-la Étoile.

Quels sont les moyens de résoudre les inefficacités des fonctions PHP ? Quels sont les moyens de résoudre les inefficacités des fonctions PHP ? May 02, 2024 pm 01:48 PM

Cinq façons d'optimiser l'efficacité des fonctions PHP : évitez la copie inutile de variables. Utilisez des références pour éviter la copie de variables. Évitez les appels de fonction répétés. Fonctions simples en ligne. Optimisation des boucles à l'aide de tableaux.

See all articles