Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Query troppo lenta

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    110

    Query troppo lenta

    Codice PHP:
    select id3.*
    from id_call_center3_tmp as id3anag_unica_tmp2 as au
    WHERE id3
    .nome != au.nome
    and id3.cognome != au.cognome
    and id3.data_nascita != au.data_nascita
    group by id3
    .nome,id3.cognome,id3.data_nascita 
    Esiste un'altro modo più veloce?I confronti che faccio non sono tra chiavi..ma ho indicizzato i campi ci mette 4 ore sta query ad essere eseguita..impossibile!

    il group by l'ho messo perchè se no mi da le ripetizioni.

    Io voglio quelli che stanno in id_call_center3_tmp ma non stanno in anag_unica_tmp2 per poi inserirli in anag_unica_tmp2...qualche idea?

  2. #2
    Forse dico una stupidaggine, ma non potresti duplicare la tabella id_call_center3_tmp (magari in una tabella in memoria) e poi eliminare i record che hanno corrispondenza con anag_unica_tmp2?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    forse ne dico una pure io ma, metterli in JOIN i campi?
    Così ottieni un prodotto vettoriale, per forza ci mette un secolo (tutte le combinazioni possibili e poi esclude quelle che non soddisfano il where)

    Codice PHP:
    SELECT id3.*
    FROM id_call_center3 AS id3
    INNER JOIN anag_unica_tmp2 
    AS au ON id3.nome != au.nome AND id3.cognome != au.cognome
    AND id3.data_nascita != au.data_nascita 
    Prova... non vorrei davvero dire na min*hiata
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    110
    Originariamente inviato da Leandro
    forse ne dico una pure io ma, metterli in JOIN i campi?
    Così ottieni un prodotto vettoriale, per forza ci mette un secolo (tutte le combinazioni possibili e poi esclude quelle che non soddisfano il where)

    Codice PHP:
    SELECT id3.*
    FROM id_call_center3 AS id3
    INNER JOIN anag_unica_tmp2 
    AS au ON id3.nome != au.nome AND id3.cognome != au.cognome
    AND id3.data_nascita != au.data_nascita 
    Prova... non vorrei davvero dire na min*hiata
    Allora ho provato anche la join cosi

    select id3.*
    from id_call_center3_tmp as id3
    LEFT JOIN anag_unica_tmp2 as au
    ON id3.nome != au.nome
    and id3.cognome != au.cognome
    and id3.data_nascita != au.data_nascita
    and au.data_nascita IS NULL
    and au.cognome IS NULL
    and au.nome IS NULL
    group by id3.cognome,id3.nome,id3.data_nascita

    Ci mette 4 5 minuti ma mi da un numero di record che non corrisponde. So che con gli stessi campi ho 2007 record uguali ma con gli stessi campi mi escono 57757 record e in totale sono 62637 c'è qualcosa ke non mi torna..

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    110
    Originariamente inviato da filippo.toso
    Forse dico una stupidaggine, ma non potresti duplicare la tabella id_call_center3_tmp (magari in una tabella in memoria) e poi eliminare i record che hanno corrispondenza con anag_unica_tmp2?
    Devo provarci..

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    110
    Originariamente inviato da filippo.toso
    Forse dico una stupidaggine, ma non potresti duplicare la tabella id_call_center3_tmp (magari in una tabella in memoria) e poi eliminare i record che hanno corrispondenza con anag_unica_tmp2?
    come faccio a metterla in memoria?

  7. #7

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    110
    Originariamente inviato da filippo.toso
    Dai una occhiata qui:

    http://dev.mysql.com/doc/refman/5.0/...ge-engine.html
    come ci metto i dati?
    faccio
    Create table balbla ENGINE=MEMORY
    insert into balbla select ?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    110
    Originariamente inviato da alien1985
    come ci metto i dati?
    faccio
    Create table balbla ENGINE=MEMORY
    insert into balbla select ?
    up help

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.