Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Ottimizzare query, paginazione 200k risultati

    Salve ragazuoli,
    ho un problema che sto verificando per la prima volta (ma sapevo che si sarebbe presentato prima o poi).
    Descrivo il problema astratto.

    Ho 200.000 record in una tabella in un DB.
    Li voglio visualizzare 60 per volta.
    codice:
    SELECT n FROM tabella LIMIT $step,60
    All'incremento di $step mi si incrementano le "pagine dei risultati".

    Per sapere però quanti risultati ho faccio una query senza il LIMIT

    codice:
    SELECT n FROM tabella
    Con un mysql_num_rows trovo il totale dei records.
    Divido il totale dei record / 60 e trovo quante pagina ho di risultati.

    Problema?
    E' lentissima la seconda query.

    Come potrei ottimizzare?
    Meglio usare COUNT(n) as tot o mysql_num_rows?
    C'è un modo di evitare la doppia query?
    Quale è la tecnica migliore da adottare in questi casi?
    'azie

  2. #2
    scusa eh, ma tu per sapere quanti record ci sono fai due query:

    - con la prima prendi 200k records e conti quanti sono
    - con la seconda ne prendi solo 60 records

    ?



    select count() per sapere quanti record ci sono, e la seconda per prenderne 60
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Originariamente inviato da Santino83_02
    scusa eh, ma tu per sapere quanti record ci sono fai due query:

    - con la prima prendi 200k records e conti quanti sono
    - con la seconda ne prendi solo 60 records

    ?



    select count() per sapere quanti record ci sono, e la seconda per prenderne 60
    sì appunto... uso count() e poi la seconda query per prenderne 60.
    Volevo questa conferma

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.