Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495

    Tabelle temporanee, mysql_pconnect / mysql_connect

    Ciao a tutti,

    sto lavorando su delle tabelle temporanee con MySQL per la prima volta e sorgono subito dei dubbi importanti:

    1) E' possibile fare in modo che il nome della tabella sia casuale e generato da MySQL? Se si, come faccio poi a sapere che nome ha?

    2) A quanto capisco, ogni connessione ha le proprie tabelle temporanee, non condivise con le altre connessioni, e' vero?
    Se e' vero come mi pare di avere capito leggendo il manuale, con una mysql_pconnect() devo aspettarmi che tutte le connessioni condividano le tabelle temporanee? Questo e' male!

    Ne ho altre ma per ora mi fermo qui :-)

  2. #2
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    UP

  3. #3

    Re: Tabelle temporanee, mysql_pconnect / mysql_connect

    Originariamente inviato da *Ray*
    Ciao a tutti,

    sto lavorando su delle tabelle temporanee con MySQL per la prima volta e sorgono subito dei dubbi importanti:

    1) E' possibile fare in modo che il nome della tabella sia casuale e generato da MySQL? Se si, come faccio poi a sapere che nome ha?

    2) A quanto capisco, ogni connessione ha le proprie tabelle temporanee, non condivise con le altre connessioni, e' vero?
    Se e' vero come mi pare di avere capito leggendo il manuale, con una mysql_pconnect() devo aspettarmi che tutte le connessioni condividano le tabelle temporanee? Questo e' male!

    Ne ho altre ma per ora mi fermo qui :-)
    1) Ovviamente no xche non ha senso

    2) si, ovviamente ^^, ma in realtà non credo sia un gravissimo problema alla fin fine puoi benissimo assegnare un nome generato con
    codice:
    time() . md5(uniqid(microtime(), true))
    e stai CERTO che la stessa tabella non viene ricreata e la fai droppare a fine connessione...alla fin fine...dentro una tabella temporanea ci stanno dei dati temporanei che non ha importanza se altre connessioni possono vederle ^^

  4. #4
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Comunque e' molto importante, a questo punto, ricordarsi che se si usano tabelle temporanee e pconnect() il nome della tabella DEVE essere casuale, altrimenti si rischiano malfunzionamenti di ogni tipo.

  5. #5
    Originariamente inviato da *Ray*
    Comunque e' molto importante, a questo punto, ricordarsi che se si usano tabelle temporanee e pconnect() il nome della tabella DEVE essere casuale, altrimenti si rischiano malfunzionamenti di ogni tipo.
    si infatti

    un bell'md5 con il timestamp unix....ti rende sicuro al 100%
    è impossibile creare + di 255^16 tabelle al secondo

  6. #6
    Ciao,
    l'osservazione che fai è molto utile, però la cosa è prevista, infatti la sintassi da utilizzare dovrebbe essere sempre la seguente

    DROP TEMPORARY TABLE IF EXISTS mia_tabella

    CREATE TEMPORARY TABLE IF NOT EXISTS mia_tabella
    per favore NIENTE PVT TECNICI da sconosciuti

  7. #7
    Originariamente inviato da Fabio Heller
    Ciao,
    l'osservazione che fai è molto utile, però la cosa è prevista, infatti la sintassi da utilizzare dovrebbe essere sempre la seguente

    DROP TEMPORARY TABLE IF EXISTS mia_tabella

    CREATE TEMPORARY TABLE IF NOT EXISTS mia_tabella
    si xo metti che ad es hai bisogno di raccogliere i dati da alcune tabelle e poi lanciare una query su questi dati :\ il nome deve essere per forza diverso :\

  8. #8
    Originariamente inviato da daniele_dll
    si xo metti che ad es hai bisogno di raccogliere i dati da alcune tabelle e poi lanciare una query su questi dati :\ il nome deve essere per forza diverso :\
    Non capisco perchè...una connessione appartiene ad un solo utente alla volta. Forse non ho capito cosa intendi
    per favore NIENTE PVT TECNICI da sconosciuti

  9. #9
    Originariamente inviato da Fabio Heller
    Non capisco perchè...una connessione appartiene ad un solo utente alla volta. Forse non ho capito cosa intendi
    nel caso di una pconnect il problema c'è
    non è mysql a gestire le connessioni persistenti, bensi php, tanto che se usi php in modalità CGI, quindi non rimane in funzione, non puoi usare le connessioni persistenti
    e quindi se il mio soft X usa le pconnect avrà certamente delle tabelle temporanee esistenti con lo stesso nome se ci sono svariati utenti nello stesso tempo di esecuzione di una pagina, quindi l'unico modo è chimare le tabelle con un nome casuale...ed il timestamp all'inizio non solo ti permette di avere sicurezza al 100% di non avere mai una tabella con lo stesso nome, ma in aggiunta lo puoi usare per una garbage collection
    magari metti un _ subito dopo il timestamp e al momento del login elenchi le tabelle...calcoli per ognuna da quanto tempo è creata e se ad es sono passati + di 6 ore (un esempio) la fai saltare...oppure + di 15 minuti se a te ti serve per un'operazione veloce

  10. #10
    Le tabelle temporanee sono uniche per connessione (poco importa se due tabelle in due connessioni diverse hanno lo stesso nome, non vanno in conflitto), e una connessione (persistente o no) può essere usata da un solo processo alla volta.

    Il problema esiste solo perchè la tabella non viene scaricata fino a quando la connessione non viene chiusa: se la connessione persistente, attiva e inutilizzata, viene raccolta da una richiesta successiva allora la tabella esiste già, per questo bisogna fare
    DROP TEMPORARY TABLE IF EXISTS mia_tabella prima di creare la tabella temporanea
    per favore NIENTE PVT TECNICI da sconosciuti

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.