Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Indici su order by

  1. #1

    Indici su order by

    ciao ragazzi...io ho una tabella...con 100000 records, ci son pagine in cui possono essere mostrarti in ordine di voto:

    SELECT *, (voti/votanti) AS media FROM immagini order by 'media'

    Allora..questa query me la fa abbastanza veloce..perchè nel db ho solo 2.000 record, me presto saranno 100-200 mila, e ho paura che diventi lenta la cosa.... che poso fare?
    IN REALTA' SONO REGISTRATO DAL 2001 PERO' MI HANNO BANNATO PER AVER SCRITTO DUE MESSAGGI NELLA SEZIONE ERRATA...CHE RICONOSCENZA!!!

  2. #2
    Utente di HTML.it L'avatar di Akito
    Registrato dal
    Nov 2005
    Messaggi
    101
    Aspetti

    Cmq, una select su una singola tabella è particolarmente veloce rispetto ad una select che considera 2 o più tabelle, quindi non me ne preoccuperei anche se presenta un order by.

    Ciao
    Akito
    W l'open source!!

  3. #3
    Il prolema è...che lo fa su 5 tabelle con UNION ALL SELECT
    IN REALTA' SONO REGISTRATO DAL 2001 PERO' MI HANNO BANNATO PER AVER SCRITTO DUE MESSAGGI NELLA SEZIONE ERRATA...CHE RICONOSCENZA!!!

  4. #4
    Utente di HTML.it L'avatar di Akito
    Registrato dal
    Nov 2005
    Messaggi
    101
    La UNION unisce solo i risultati delle varie select un una unica lista.
    Non pesa molto. Quello che pesa sono le JOIN che tu non fai (almeno credo ).
    W l'open source!!

  5. #5
    Ma con le join cosa puoi fare di piu?
    IN REALTA' SONO REGISTRATO DAL 2001 PERO' MI HANNO BANNATO PER AVER SCRITTO DUE MESSAGGI NELLA SEZIONE ERRATA...CHE RICONOSCENZA!!!

  6. #6
    Utente di HTML.it L'avatar di Akito
    Registrato dal
    Nov 2005
    Messaggi
    101
    Ti faccio un esempio:

    Supponiamo di avere una rubrica e dover restituire tutti i numeri di telefoni di una determinata persona (pippo)

    ho due tabelle una tabella "nomi":

    id, nome
    1, pippo
    2, claudio
    3, gertrude

    dove il numero è la chiave primaria della tabella "nomi".


    e una tabella "numeri":

    id, idnomi, numero
    1, 1, 333759956
    2, 1, 028774894
    3, 2, 8764894393
    4, 3, 86983265

    dove
    il primo numero è chiave primaria della tabella "numeri"
    il secondo numero è la chiave esterna per la tabella "nomi"
    il terzo numero è il numero di telefono

    Quindi per trovare tutti i numeri di pippo si fa:

    select numeri.id, numeri.numero
    from numeri, nomi
    where nomi.nome LIKE "pippo" AND nomi.id=numeri.idnomi

    dove la clausola where "nomi.id=numeri.idnomi" è la join tra le due tabelle.

    Spero di averti chiarito alcuni dubbi, ma è meglio se cerchi documentazione sul linguaggio SQL, alcuni siti e/o libri spiegano meglio di me.

    Ciao
    Akito
    W l'open source!!

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.