Visualizzazione dei risultati da 1 a 10 su 10

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Quote Originariamente inviata da debug Visualizza il messaggio
    Per esempio nell'Extra del primo report leggo 2 using index, mentre nel secondo report c'è un solo using where (che credo sia peggiore dell'altro).
    Entrambe le query usano un indice. La differenza è che "Using index" significa che usa solo l'indice, senza dover accedere ai dati. Si parla di Covering Index. Però... stiamo parlando di una sola riga, quindi anche se deve accedere ai dati non cambia nulla

    Visto che ci sono così poche differenze (più che altro, non credo incidano sulle prestazioni) io userei l'indice su una colonna.

  2. #2
    Quote Originariamente inviata da razzoli Visualizza il messaggio
    Entrambe le query usano un indice. La differenza è che "Using index" significa che usa solo l'indice, senza dover accedere ai dati. Si parla di Covering Index. Però... stiamo parlando di una sola riga, quindi anche se deve accedere ai dati non cambia nulla
    E se parlassimo di estrarre X campi? Diciamo per esempio un centinaio.

    Quote Originariamente inviata da razzoli Visualizza il messaggio
    Visto che ci sono così poche differenze (più che altro, non credo incidano sulle prestazioni) io userei l'indice su una colonna.
    Come mai questa scelta?


    Ciao!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Quote Originariamente inviata da debug Visualizza il messaggio
    E se parlassimo di estrarre X campi? Diciamo per esempio un centinaio.
    Non ho capito la domanda. MySQL usa i covering index solo se tutti i campi che deve leggere sono indicizzati, altrimenti dovrà leggere anche i dati. Se fai SELECT id WHERE nome='x' e nome è indicizzato, l'indice è "covering" per questa query. Se selezioni anche un campo che non è indicizzato, l'indice non è covering.

    Mi stai chiedendo se conviene fare un indice di 100 campi? No, occuperebbe tanta memoria e le operazioni di lettura dell'indice sarebbero più lente.

    I covering index fanno la differenza se devi leggere molte righe.

    Quote Originariamente inviata da debug Visualizza il messaggio
    Come mai questa scelta?
    In generale l'indice deve essere as small as possible. E' giusto aggiungere una colonna solo se ci sono dei vantaggi. Ma in questo caso, tutti e due i query plan sono praticamente perfetti. (a parte la lunghezza dell'indice slug)

    Quote Originariamente inviata da debug Visualizza il messaggio
    Ciao!
    Ciao

  4. #4
    Quote Originariamente inviata da razzoli Visualizza il messaggio
    Non ho capito la domanda. MySQL usa i covering index solo se tutti i campi che deve leggere sono indicizzati, altrimenti dovrà leggere anche i dati. Se fai SELECT id WHERE nome='x' e nome è indicizzato, l'indice è "covering" per questa query. Se selezioni anche un campo che non è indicizzato, l'indice non è covering.

    Mi stai chiedendo se conviene fare un indice di 100 campi? No, occuperebbe tanta memoria e le operazioni di lettura dell'indice sarebbero più lente.
    No intendevo se dovessi estrarre un numero X di righe in base ad una select del tipo Where author_id = 'xy' (che corrisponde a tutti i post di quell'autore), oppure tutti i post in un range temporale.


    Ciao!!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Quote Originariamente inviata da debug Visualizza il messaggio
    No intendevo se dovessi estrarre un numero X di righe in base ad una select del tipo Where author_id = 'xy' (che corrisponde a tutti i post di quell'autore), oppure tutti i post in un range temporale.
    Sì in quel caso un covering index è più efficiente... ma se la query è efficiente lo stesso, non aggiungere campi.

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