Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    628

    [PHP] Ottimizzare tabella mysql

    Ciao a tutti
    Devo gestire degli annunci sul mio sito, siccome sono moltissimi (oltre 60 mila).
    Vorrei ottimizzare le tabelle mysql, ora è strutturato tutto cosi:

    ANNUNCI
    id -> Contatore
    id_data -> int(6)
    chiave -> Varchar(255)
    tipo -> tinyint(1)

    ANNUNCI_DATI
    id -> Contatore
    data -> Data
    ora -> Time
    titolo -> Varchar(255)
    testo -> Text
    ip -> varchar(15)
    servizi -> Text
    altro -> Text
    path -> Varchar(255)


    Ora siccome questi annunci devono venir fuori dopo una ricerca...io da script php faccio una ricerca nel campi "chiave" della prima tabella...in questo campo ci sono delle chiavi di ricerca suddivise da uno spazio. se vengono trovati annunci con la chiave cercata..visualizzo i dati dell'annuncio..legando id_data con id(della seconda tabella)..

    Ora le mie domande sono:
    1) Conviene fare una tabella solamente? o suddividere in due va bene?
    2) id_data...cioè il campo numerico che ha memorizzato l'id dei dati dell'annunci..bisogna impostarlo su int e basta? Bisogna impostare qualcos altro?
    3) Siccome l'utente può digitare più key...io per ogni parola devo mettere una LIKE '%parola1%' AND LIKE '%parola2%' etc etc non ce'è un modo per ottimizzare? La LIKE beve parecchio!


    Aspetto suggerimento
    Grazie!
    Software gratuito per gestire le tue newsletter: Mercurio

  2. #2
    1) Io le farei separate
    2) Dipende, se sei te ad aggiungere il valore di id manualmente SI, se invece è un contatore, metti auto_increment e key
    3)
    Codice PHP:
    $query "SELECT * FROM annunci WHERE moto LIKE '$query'";
    if (isSet(
    $_POST['auto'])) { $query .= " OR auto LIKE '$query'"; }
    if (isSet(
    $_POST['case'])) { $query .= " OR case LIKE '$query'"; }
    ... 

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    628
    Originariamente inviato da mem
    1) Io le farei separate
    2) Dipende, se sei te ad aggiungere il valore di id manualmente SI, se invece è un contatore, metti auto_increment e key
    3)
    Codice PHP:
    $query "SELECT * FROM annunci WHERE moto LIKE '$query'";
    if (isSet(
    $_POST['auto'])) { $query .= " OR auto LIKE '$query'"; }
    if (isSet(
    $_POST['case'])) { $query .= " OR case LIKE '$query'"; }
    ... 
    non ho capito la select...sinceramente.
    no non è un contatore il campo id_data, se non metto auto_increment posso mettere key ugualmente? ho dei migliramenti?

    A posto della LIKE si può utilizzare qualcos altro?
    Software gratuito per gestire le tue newsletter: Mercurio

  4. #4
    KEY mettilo solo se vuoi che tutti i valori di tale colonna siano diversi

    LIKE è l'unico

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    628
    Originariamente inviato da mem
    KEY mettilo solo se vuoi che tutti i valori di tale colonna siano diversi

    LIKE è l'unico
    un ultima cosa...perchè dici sia meglio suddividere le tabelle?
    Alla fine mysql invece di cercare su uno poi alla fine cerca su un altra non è peggio?
    Software gratuito per gestire le tue newsletter: Mercurio

  6. #6
    E' più facile portare 10 mattoni 1 per volta o tutti 10 insieme? :P Se possibile suddividi le tabelle (senza frammentarle troppo ovvio)

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    628
    Originariamente inviato da mem
    E' più facile portare 10 mattoni 1 per volta o tutti 10 insieme? :P Se possibile suddividi le tabelle (senza frammentarle troppo ovvio)
    chiaro ma rende l'idea!!


    però domanda...stupida....portare un mattone alla volta non impiega di più che portarli tutti assieme(con qualche fatica)?
    Software gratuito per gestire le tue newsletter: Mercurio

  8. #8
    Hahahaha, si però almeno sei sicuro nel riuscire a farlo, se quei 10 diventano 50, tutti insieme magari non arrivi nemmeno al traguardo

    Mi è capitato di avere problemi con tabelle contenenti una grande quantità di dati (con grande intendo molto grande )

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    628
    Originariamente inviato da mem
    Hahahaha, si però almeno sei sicuro nel riuscire a farlo, se quei 10 diventano 50, tutti insieme magari non arrivi nemmeno al traguardo

    Mi è capitato di avere problemi con tabelle contenenti una grande quantità di dati (con grande intendo molto grande )
    grande quanto?


    P.S. Per cercare FULL-TEXT ho letto che è il migliore, è vero?
    Software gratuito per gestire le tue newsletter: Mercurio

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.