Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    32

    Indici database: Come comportarsi?

    Salve a tuttu, questo è il mio primo post quindi colgo l'occasione per fare i piu sinceri complimenti agli utenti del forum e tutta la community di html.it!
    Stò realizzando da zero un sito di annunci in php + db mysql.
    Premetto che fino ad un mese fa non sapevo neanche come aprire il php <? Quindi mi ritengo tutto sommato soddisfatto! Diciamo che imparo in fretta!
    Gli annunci sono catalogati in db tramite categoria, regione, provincia.
    Dal momento che essendo ottimistici gli annunci saranno parecchi, e che il sito è ancora in lavorazione e posso quindi permettermi di apportare modifiche senza sconvolgere niente, mi chiedevo se potesse avere senso, o se fosse assolutamente necessario l'utilizzo degli indici per velocizzare le ricerche.
    La ricerca di per se è strutturara con scelta obbligatoria della categoria e facoltativa di regione e provincia, quindi 3 possibili query al db.

    Le mie domande principalmente sono:

    1) Ha senso creare 3 indici? categoria, regione, provincia? Potrebbe davvero velocizzare le ricerce?

    2) Utilizzando gli indici, come dovrà essere impostata la query di ricerca? SELECT etc. etc. o altro?

    3) (domanda forse stupida ) Se decidessi di creare gli indici in un secondo momento, gli annunci già presenti in db verrebbero esclusi dalla ricerca? dovrei manualmente inserirli negli indici? Scusate ma ho un po di confusione in testa riguardo all'argomento e girando non ho trovato nulla di chiaro come vorrei!

    Grazie in anticipo a tutti coloro che risponderanno!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    32
    Nessuno? Forse sarebbe più appropriata la sezione database? Non sapevo dove postare dal momento che le mie domande sono su db e php e mi sembrava inutile fare due topic!

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da devoice
    Nessuno? Forse sarebbe più appropriata la sezione database? Non sapevo dove postare dal momento che le mie domande sono su db e php e mi sembrava inutile fare due topic!
    Negativo. Le domande sono solo su db, non hai chiesto niente su php. Quindi sì, hai sbagliato sezione. Comunque:

    1) Sì ha senso, anzi è necessario
    2) La query non cambia
    3) No, niente verrebbe escluso. Non è una domanda stupida, semplicemente denota la tua totale ignoranza sull'argomento, così come le due precedenti.
    Un'occhiata qui potrebbe esserti utile

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    32
    Grazie per la risposta, ho letto la guida che mi hai linkato relativa agli indici appunto, ma non ho trovato risposta ad una domanda:
    Ipotesi, nuovo db (vergine) creo una tabella con indici. Quando comincerò ad inserire dati, questi verranno aggiunti anche agli indici.
    Se ho una tabella con già delle righe (che siano 2 o 10.000) e vado successivamente a creare degli indici su 3 colonne (INT), come dicevo (categoria, regione, provincia), nel momento in cui farò una ricerca, le colonne di queri vecchi dati, faranno o non faranno parte degli indici?
    Ovvero, se quando inserisco dati, le colonne indicizzate vengono appunto copiate, quelle "vecchie" non risulteranno?

    Se qualcuno può dare delucidazioni in merito, ripeto, la guida l'ho guardata ma non ho chiaro il concetto....Grazie ancora

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da luca200
    3) No, niente verrebbe escluso.
    Se non va bene l'italiano dillo, due parole in qualche altra lingua le so dire

  6. #6
    c'è una pillola in questo forum proprio sulla ricerca avanzata in un database (mysql mi pare) e il relativo uso degli indici... fatti una ricerca


    EDIT: sei fortunato che l'avevo nei bookmarks http://forum.html.it/forum/showthrea...readid=1219344
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    32
    Santino83 grazie mille, molto molto utile!

    Luca200, evidentemente se ho chiesto delucidazioni, in qualche modo la tua risposta non mi aveva tolto tutti i dubbi, non credi? O forse pensi di parlare con una persona che non merita altri toni per il semplice fatto che mi sono appena iscritto? grazie.

    P.S. Anche nella seconda reply non mi hai dato nessuna informazione utile considerando che ho fatto una domanda alla quale non credo si possa/debba rispondere citando un precedente commento del tipo "No, niente verrebbe escluso.", credo di avere fornito dati piu specifici.

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da devoice
    Luca200, evidentemente se ho chiesto delucidazioni, in qualche modo la tua risposta non mi aveva tolto tutti i dubbi, non credi?
    No, credo semplicemente che tu non l'abbia letta, visto che mi sembra chiarissima.

    Originariamente inviato da devoice
    Se decidessi di creare gli indici in un secondo momento, gli annunci già presenti in db verrebbero esclusi dalla ricerca?
    Originariamente inviato da luca200
    No, niente verrebbe escluso.
    Qual è la parte difficile? quali sono i "dati più specifici" che avresti fornito la seconda volta? Hai rifatto la stessa domanda con parole diverse.
    Quando crei un indice su una colonna vengono indicizzati TUTTI i dati di quella colonna. Presenti e futuri.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    32
    Luca200, facciamo così, mi sono spiegato male io e di conseguenza non ci siamo capiti.
    Ho letto ancora e ancora ma evidentemente il concetto che cerco non l'ho afferrato.
    Mi appello alla tua pazienza e provo a riepilogare un po meglio.

    Nel db ho una tabella "annunci" strutturata così:

    id | nomeutente | titoloannuncio | testoannuncio | categoriaannuncio | regione | provincia

    (+ data pubblicazione e altre cose che non centrano).

    I campi interessati dalla ricerca sono INT, solo numerici e al massimo di 2 cifre.

    La funziona di ricerca, prevede l'utilizzo di 1 su 3 query possibili in base ai campi ricercati quindi: categoria, categoria + regione, categoria + regione + provincia.

    1) Per velocizzare la ricerca, qual'è la migliore composizione per il/gli indice/i?

    2) INDEX (categoria,regione,provincia) o altro?

    Spero di essere stato più chiaro questa volta.
    Grazie ancora per la pazienza!

  10. #10
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Questa mi sembra una domanda completamente diversa.

    Direi che un indice su categoria, regione e provincia dovrebbe andare benissimo.

    P.S. se i campi hanno al massimo due cifre, usare degli interi è un totale spreco di spazio, soprattutto se la tabella è grossa. Un TINYINT è più che sufficiente.

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.