Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361

    Prestazioni: enum o tinyint?

    Salve, mi capita spesso di avere delle tabelle con campi "flag", ovvero campi che devono segnalare se una certa opzione è attiva oppure no.

    Per una questione di 'ordine' e leggibilità ho sempre preferito utilizzare un ENUM('on', 'off'), però per quanto ne so un campo di tipo INT (o tinyint che sia) garantisce una maggiore velocità di 'risposta' se sottoposto a query (utilizzando lo 0 come 'off' e 1 come 'on')

    Voi che metodo usate? Quale dei due è più performante? Quand'è che conviene utilizzare ENUM?

    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  2. #2
    Quote Originariamente inviata da LuckySevenRoX Visualizza il messaggio
    Salve, mi capita spesso di avere delle tabelle con campi "flag", ovvero campi che devono segnalare se una certa opzione è attiva oppure no.

    Per una questione di 'ordine' e leggibilità ho sempre preferito utilizzare un ENUM('on', 'off'), però per quanto ne so un campo di tipo INT (o tinyint che sia) garantisce una maggiore velocità di 'risposta' se sottoposto a query (utilizzando lo 0 come 'off' e 1 come 'on')

    Voi che metodo usate? Quale dei due è più performante? Quand'è che conviene utilizzare ENUM?

    non so bene quale sia la differenza in termini di prestazione tra i due tipi.

    Di quanti record e' composta la tabella in questione?
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    dipende, li uso su tabelle che vanno da 0 a 10000 record ma anche su tabelle che vanno mooolto oltre i 10000
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  4. #4
    ok, se mi linki dove hai letto che il tinyint e' piu' efficiente lo leggo volentieri

    comunque in linea generale non credo che utilizzare l'uno rispetto all'altro dia grosse differenze di performance, mi preoccuperei piuttosto di creare i dovuti indici o di partizionare le dovute tabelle
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  5. #5

  6. #6
    grazie optime del link.

    Su stack overflow c'e il link al manuale ufficiale mysql dal quale leggo :

    BOOL, BOOLEAN
    These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true



    Quindi per corretteza direi usa TINYINT(1)
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  7. #7
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    Quote Originariamente inviata da optime Visualizza il messaggio
    perfetto, grazie mille!
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

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.