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

    [mysql] in questo caso serve creare un indice?

    buongiorno,
    per l'ottimizzazione del db e per le relative prestazioni mi chiedevo se fosse il caso di creare un indice sul campo "valore" questa tabella, considerando che dovrà ospitare circa 50.000 record.

    codice:
    CREATE TABLE IF NOT EXISTS `table` (
      `userid` int(11) NOT NULL auto_increment,
      `username` varchar(34) NOT NULL,
      `valore` enum('0','1','2','3') NOT NULL,
      PRIMARY KEY  (`userid`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    d'altronde la maggior parte delle select sarà sul campo "valore" con l'operatore = e userid con > e < .

    ne vale la pena, o ne uscirebbe solo un immenso indice?
    Una forte determinazione ad esser felici vi aiuterà

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Si tratterebbe di un indice a bassa granularità, quindi potrebbe anche essere poco utile. Probabilmente dipende anche da come saranno distribuiti i valori e da come saranno le query. Mi sa che la cosa migliore è fare qualche prova

  3. #3
    io lo metto... c'è un modo per vedere quante risorse usa una query?
    Una forte determinazione ad esser felici vi aiuterà

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Puoi fare due cose: lanciare una explain sulla query, presente l'indice, e vedere se viene usato.
    Oppure, empiricamente, lancia la query con e senza indice, e valuta la differenza nei tempi di esecuzione (quelli restituiti dal server, non la percezione a occhio)

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.