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

    Ottimizzare database mysql(phpmyadmin)

    Salve, volevo dei modi per ottimizzare l'estrazione dei dati e l'organizzazione dei campi in mysql.
    Ho pensato di alleggerire il carico dividendo una grossa tabella che avevo in 4 tabelle più piccole; a seconda della categoria (determinata da un GET) scelta nella pagina al momento del suo caricamento interviene una sola delle tabelle.
    Adesso ho visto in una guida che in html5 sono stati aggiunti molti tipi di nuovi campi per quanto riguarda i form, per determinare meglio quali dati si stanno immettendo, e ho visto(se ho capito leggendo la pagina di wikipedia dal 2011) che sono state immesse anche delle opzioni di trasformazione per i campi creati nel database.
    Purtroppo non ho capito come eseguire una traformazione direttamente al momento dell'estrazione, ad esempio inserendo il link di un immagine non dovrebbe trasformarsi da solo in un campo di tipo "<im src:...."?, oppure in un "<a link...<imgsrc:..."?.
    Al momento queste trasformazioni le eseguo io dai vari cicli di php, ma vorrei sapere se è possibile automatizzare il database in questo modo, inoltre facendolo si appesantisce il carico, diminuendo le prestazioni o è lo stesso?
    Ultime domande:
    1)conviene fare vari union, oppure un'unica grande tabella?;
    2)se io estraggo prima dei dati dalla "tabella1" e poi ho bisogno di cercare gli stessi dati anche nella "tabella2", devo rifare sempre la query da capo(utilizzando union, o aggiungendo tabella1 nella query di tabella2), oppure posso riclicare i dati estratti in precedenza (in sostanza è possibile aggiungere i dati della query1 alla query2?)?;
    3)conviene usare veramente i campi di traformazione, o possono rallentare la query?;
    4)esistono campi meno pesanti di altri?(ad esempio meglio varchar o text?)
    Scusate per tutte queste domande, ma con una discussione mi tolto ogni dubbio, rispondete solo a ciò che volete naturalmente.

  2. #2

    Re: Ottimizzare database mysql(phpmyadmin)

    Originariamente inviato da _Marco_87

    Purtroppo non ho capito come eseguire una traformazione direttamente al momento dell'estrazione, ad esempio inserendo il link di un immagine non dovrebbe trasformarsi da solo in un campo di tipo "<im src:...."?, oppure in un "<a link...<imgsrc:..."?.
    No.... al massimo HTML5 dice al browser di fare dei controlli sulla validità dei dati. Ovviamente se il browser non supporta il controllo che chiedi, non viene fatto.

    1)conviene fare vari union, oppure un'unica grande tabella?;
    Se tu avessi centinaia di GB di dati dovresti partizionare la tabella.
    Quello che devi fare è leggerti una bella guida su come funzionano gli indici di MySQL e usarli. Gli indici sono strutture dati che permettono di leggere poche righe laddove senza indici ne verrebbero lette centinaia.

    2)se io estraggo prima dei dati dalla "tabella1" e poi ho bisogno di cercare gli stessi dati anche nella "tabella2", devo rifare sempre la query da capo(utilizzando union, o aggiungendo tabella1 nella query di tabella2), oppure posso riclicare i dati estratti in precedenza (in sostanza è possibile aggiungere i dati della query1 alla query2?)?;
    Dovresti usare una UNION, ma ripeto che non è il caso.


    3)conviene usare veramente i campi di traformazione, o possono rallentare la query?;
    Scusa ma non ho capito: cosa intendi per dati di trasformazione?

    4)esistono campi meno pesanti di altri?(ad esempio meglio varchar o text?)
    Certo. I campi CHAR sono a lunghezza fissa, quindi occupano più spazio ma sono più veloci da leggere. I VARCHAR sono a lunghezza variabile (xxx è più corto di xxxxxxxx) quindi risparmiano spazio ma sono più lenti da leggere. TEXT è registrato separatamente, quindi le query che leggono questi campi sono più lente. Ma soprattutto limitano gli indici (questo è un po' lungo da spiegare).

    In generale, ovviamente i campi più piccoli sono più veloci. Soprattutto la chiave primaria dovrebbe essere piccola. Non usare mai BIGINT per la chiave primaria.


    Scusate per tutte queste domande, ma con una discussione mi tolto ogni dubbio, rispondete solo a ciò che volete naturalmente.
    Meglio chiedere che fare cose sbagliate
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  3. #3
    Grazie per la spiegazione, andrò a cercare quello che mi hai suggerito.
    Il problema è che non sò cosa sia veramente un campo di trasformazione:
    in mysql se metti aggiungi campo alla fine sella riga trovi: 1)Trasformazione del browser; 2)Opzioni di trasformazione.
    Per trasformazione del browser c'è(ad esempio): image/jpeg:link, mentre su opzioni di traformazione c'è una breve spiegazione che non capisco e non trovo nulla su internet che lo spieghi.

  4. #4
    Stai parlando di phpmyadmin? Guarda, non so cosa siano questi campi di trasformazione, ti consiglio di usarlo in inglese perché potrebbe essere una traduzione sballata. Se poi continui a non capire cosa sono... boh, fai delle prove, e se continui a non capirlo non usarli
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  5. #5
    Avevo pensato che prima in campo di trasformazione dovevo specificare s ead esempio inserivo il percorso di un immagine di tipo link(è un formato disponibile in phpmyadmin), e poi in opzioni di trasformazione del browser dovevo specificare come doveva essere trasformato in link.
    Preciso che per averle un link basta mettere in un ciclo:
    <img src="<?php echo $p; ?>..../>"(qui sarebbe ciclo foreach con $percorso as $p).
    Mi interessava sapere megli ocosa fossero e come si usano veramente per capire se sono utili o meno.


    P.S. Non stò facendo più prove perchè non riesco ad avviare una traformazione, se riempiti i campi non trasformano veramente il loro contenuto, neanche in maniera sbagliata.. Non sò a che serve..

  6. #6
    Il fatto è che questa cosa non esiste in MySQL, è una funzionalità di phpMyAdmin. Probabilmente serve a inserire i dati in modo comodo quando lavori con phpMyAdmin, ma poi nel tuo sito devi fare diversamente.
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  7. #7
    Perfetto, grazie della spiegazione.

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.