Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481

    [mysql 5] ottimizzare una query semplice da 20 secondi!

    Sto facendo una semplicissima query, no join, semplicissima:

    SELECT *
    FROM immagini
    ORDER BY id DESC;

    La query impiega circa 20 secondi!

    La tabella immagini ha 10 campi circa, uno dei quali è un mediumblob che contiene appunto il binario delle immagini.

    La tabella ha circa 12.000 record.

    Possibile che impiega 20 secondi una query così semplice?! PErchè mai MySQL da la possibilità di storare addirittura longblob se già con un campo mediumblob con 12.000 record è inutilizzabile?!

    La tabella pesa 422 Mb.

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Il campo id è un indice? Ha senso estrarre tutti i 12.000 record? Cosa devi farci?
    think simple think ringo

  3. #3
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da marketto
    Il campo id è un indice? Ha senso estrarre tutti i 12.000 record? Cosa devi farci?
    C'è un LIMIT 0,30 che ho tralasciato nel post. id è la chiave primaria, ma se faccio l'order by su un altro campo il risultato è sempre lo stesso

  4. #4
    Hai provato a riscostruire/ottimizzare l'indice e/o la tabella? Magari è danneggiata.
    Vedi:
    http://database.html.it/articoli/leg...-manutenzione/

  5. #5
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da MacApp
    Hai provato a riscostruire/ottimizzare l'indice e/o la tabella? Magari è danneggiata.
    Vedi:
    http://database.html.it/articoli/leg...-manutenzione/
    sì, ho già fatto il controllo e poi l'ottimizzazione, ma il risultato è sempre lo stesso

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Giusto per capire meglio, hai provato a fare LIMIT 0,1? oppure a non selezionare il campo blob?
    think simple think ringo

  7. #7
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da marketto
    Giusto per capire meglio, hai provato a fare LIMIT 0,1? oppure a non selezionare il campo blob?
    Se non seleziono il blob è lo stesso, il problema scompare se non uso nessuna WHERE e nessuna ORDER BY, se uso un ordinamento o condizioni la query impiega 20 secondi anche se non seleziono il campo blob.

    Se invece imposto un LIMIT 0,1 la query va bene (1 secondo), sia con che senza condizioni e/o ordinamenti e/o campo blob selezionato

  8. #8

    Ma se al posto di salvare il binario della foto nel DB, salvi semplicemente il link per raggiungere l'immagine???
    Con il tuo metodo, appesantisci il DB, no????
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da alcio74

    Ma se al posto di salvare il binario della foto nel DB, salvi semplicemente il link per raggiungere l'immagine???
    Con il tuo metodo, appesantisci il DB, no????
    in teoria mysql ha i campi blob proprio per salvare dati binari, anche di grandi dimensioni (longblob) quindi vorrei capire cosa c'è di sbagliato. Sicuramente il DB è più pesante, ma dovrebbe essere stato fatto per gestire questa situazione, no?!

  10. #10
    se il campo dove fai l'order by non è indicizzato è normale che sia così, deve scorrere tutti i dati per ordinare, metti un indice in +

    ciao

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.