Pergunta : Tabela do Temp de MySQL LENTA!

Assim eu tenho este proc que é ABSOLUTAMENTE LENTO. Toma minutos ao retorno. Se eu não uso uma tabela do temp, toma aproximadamente um décimo de indícios de second.

Any?
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
class= " do id= " codeSnippet864325 do
-- --------------------------------------------------------------------------------
-- Rotina DDL
-- --------------------------------------------------------------------------------
DELIMITADOR $$

CRIAR o `do `getCompanyOverviewV4 do PROCEDIMENTO do `do localhost do `do `da raiz do `de DEFINER= @ (
  No iCk INT (10) ZEROFILL
)
COMEÇAR

    CRIAR A TABELA PROVISÓRIA SE NÃO EXISTE filingIDTT (
        filingID INT
    );

    INSERÇÃO no filingIDTT (filingID)
    SELECIONAR o filingID
    Dos aggr_filings
    ONDE cik_issuer = iCIK;

    SELECIONAR *
    Dos aggr_filings
    ONDE filingID DENTRO (SELECIONAR o filingID do filingIDTT);

    SELECIONAR *
    Dos aggr_transactions
    ONDE filingID DENTRO (SELECIONAR o filingID do filingIDTT);

    SELECIONAR *
    De ceostockwatch.aggr_owners
    ONDE filingID DENTRO (SELECIONAR o filingID do filingIDTT);

    DEIXAR CAIR o filingIDTT da TABELA PROVISÓRIA;

EXTREMIDADE
class= do

Resposta : Tabela do Temp de MySQL LENTA!

                 Olá!!

Seu aggr_filingID tem o índice no cik_issuer da coluna?
Se não eu criaria um índice non-unique nas colunas (cik_issuer, filingID) que
dar-lhe-ia a varredura/leitura do índice-somente para a primeira pergunta.
Então eu criaria ou teria um índice no filingID da coluna o filingIDTT da tabela provisória
como isto

CRIAR A TABELA PROVISÓRIA SE NÃO EXISTE filingIDTT (
        filingID INT, ÍNDICE USING O BTREE (filingID)
    );

Esperar que isto ajuda.

Considerações,
      Tomas Helgi
Outras soluções  
 
programming4us programming4us