J'ai une déclaration comme ci-dessousCréer une table de jointure interne extrêmement lent
CREATE TABLE INPUT_OUTPUT
SELECT T1_C1,.....,T1_C300, T1_PID from T1
INNER JOIN (SELECT T2_C1,T2_C2,T2_PID FROM T2) as RESPONSE ON T1.T1_PID=RESPONSE.T2_PID
qui est en cours d'exécution extrêmement lent - pendant 5 heures maintenant. Les deux tables ont environ 4 millions de lignes et quelques centaines de colonnes. J'ai une machine ubuntu-linux à 8 cœurs et 64 gb de RAM et en utilisant le top je peux voir que 3gb n'est même pas utilisé par le processus mysql sur un seul noyau, bien que son utilisation soit toujours à 100%. C'est bouleversant que tous les cœurs ne soient pas utilisés.
Je veux créer la table beaucoup plus rapidement que cela.
Dois-je utiliser
CREATE TABLE INPUT_OUTPUT LIKE T1
INPUT_OUTPUT alter en ajoutant les colonnes supplémentaires pour celles qui sont pertinentes en T2, puis le remplir? Je ne suis pas sûr de la syntaxe pour le faire et si cela conduira à une accélération.
Je suis confus: la sous-requête n'a pas de colonne PID. –
@ Keith: Typo, corrigé. – Yoda
HPC n'a rien à voir avec les requêtes SQL lentes - étiquette HPC supprimée. –