Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [MySql] query con join più lenta se utilizzo un campo indicizzato

    Ciao a tutti,

    nel pannello di ricerca del mio applicativo, ho una query che esegue:
    4 JOIN su altre tabelle e 7 LEFT JOIN su altre tabelle

    eseguendo la query scritta su PhpMyAdmin mi sono accorto che il tempo di esecuzione aumenta notevolmente, se, tolgo l'indice da un campo(INT) oggetto della JOIN...

    Es. qui: JOIN stato ON (fascicoli.idStato=stato.idStato)

    se fascicoli.idStato è un index, la query si rallenta di colpo (stato.idStato è PK della tabella "stato")

    è che, togliendo l'indice a fascicoli.idStato non posso neanche applicare la FK tra le due tabelle innodb

    da che può dipendere?
    Grazie a tutti per i consigli e per l'aiuto

    P.S. il database occupa 50Mb la dimensione massima di ogni tabella e 25mila righe. Server ubuntu dedicato solo a MySql. 4Gb RAM e doppio processore su server HP.
    Ultima modifica di aquatimer2000; 15-04-2019 a 10:09
    aquatimer2000

  2. #2
    dipende dal fatto che togli l'indice

  3. #3
    Quote Originariamente inviata da optime Visualizza il messaggio
    dipende dal fatto che togli l'indice
    quindi è normale che, togliendo l'indice, la query si velocizza?
    non dovrebbe essere il contrario?!?
    aquatimer2000

  4. #4
    Ho scritto male il primo post :

    il tempo di esecuzione della query DIMINUISCE se tolgo l'indice (e di conseguenza la FK) sul campo "fascicoli.idStato"

    ecco perchè mi sembrava strano ed ho aperto la discussione.

    in partenza, ho messo gli indici su tutti i campi oggetto di JOIN

    togliendo quello su "fascicoli.idStato", le prestazioni aumentano.
    aquatimer2000

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 © 2024 vBulletin Solutions, Inc. All rights reserved.