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

    MYSQL Progettazione e Ottimizzazione Tabelle

    Innazitutto un complimento a questo forum ..è il mio primo post ..
    E da un po di tempo che sto lavorando su mysql ed ora è giuto il momento dell'ottimizzazione dei miei database..

    1) domanda .. meglio tabelle con tante colonne o con tante righe ?
    Mi spiego meglio
    faccio 2 esempi
    1 )esempio
    TABLE `tb_user` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `nome` varchar(255) NOT NULL,
    `cognome` varchar(255) NOT NULL,
    `via` varchar(255) NOT NULL,
    .......
    PRIMARY KEY (`id`)
    )
    2)esempio 2 Tabelle

    TABLE `tb_user` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `id_rif` int(11),
    `id_type` int(11) varchar(255) NOT NULL,
    `value` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
    )

    TABLE `tb_type` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `value` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
    )
    dove c'e una relazione tra tb_type.id=tb_user.id_type e id_rif è un campo dove ha lo stesso valore per dati apparteneti alla stessa persona

    Il primo esempio è molto semplice ma ogni volta che devo aggiungere altre campi devo mettere mano alla struttura della tabella
    il secondo è più versatile (cosi lavora ad esempio Magento) ma ho notato che estrapolare dati comporta un numero di join
    tanti quanti sono i campi che voglio estrapolare
    una select potrebbe essere :

    SELECT DISTICT(id_rif), CONCAT (q0.value) AS Nome, Concat (q1.cognome) AS Cognome
    FROM tb_user
    LEFT JOIN (SELECT value FROM tb_user WHERE id_ref=1) AS q0 ON (q0.id_ref=tb_user.id_ref)
    LEFT JOIN (SELECT value FROM tb_user WHERE id_ref=2) AS q1 ON (q1.id_ref=tb_user.id_ref)

    Il Risultato del tipo

    id | Nome | Cognome
    1 Mario ROssi
    2 Alberto Esposito

    cioè una trasposizione (se così si può chiamare ) della tabella tb_user da verticale ad orizzontale

    Onestamente la seconda modalità mi piace di più ma mi porta ad avere delle query che impiegano molto più tempo , anche mettendo indici ..
    Cosa mi consigliate ?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    la prima

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.