php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-06-2005, 12:44
Friedward74
 Newbie
Links : Onlinestatus : Friedward74 ist offline
Registriert seit: May 2005
Beiträge: 36
Friedward74 ist zur Zeit noch ein unbeschriebenes Blatt
Question TINYINT oder ENUM

...welche der beiden Zellentypen bringt die bessere Performance bzw. ist speicherintensiver? Ist es nur, das man bei ENUM keine > oder < -Abfragen stellen kann, oder gibt es weitere Nachteile von ENUM?
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 22-06-2005, 13:09
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

na, was willst du denn drin speichern?

ich sach mal, der name der Typen sagt eigentlich alles.

Wenn normaler zahlenwert, dann int
Wenn ein wert aus ner aufzählung, dasn enum
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 22-06-2005, 13:33
chansel0049
 Member
Links : Onlinestatus : chansel0049 ist offline
Registriert seit: Apr 2004
Beiträge: 294
chansel0049 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn es nur um Ja / Nein geht nehm TinyINT(1)

Wenn Du alphanum werte hast gehts natürlich nur mit enum

ENUM ist ein zeichenketten objekt mit begrenzter Gültigkeit , hat also mehr speicherbedarf als ein 8bit integerwert
__________________
chansel0049
----------------------------------------------------
if you've reached the bottomline - dig further!
Übersetzer gesucht? http://www.babelport.com
Mit Zitat antworten
  #4 (permalink)  
Alt 22-06-2005, 21:37
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.277
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von chansel0049
Wenn es nur um Ja / Nein geht nehm TinyINT(1)

Wenn Du alphanum werte hast gehts natürlich nur mit enum

ENUM ist ein zeichenketten objekt mit begrenzter Gültigkeit , hat also mehr speicherbedarf als ein 8bit integerwert
Hmmnn ... würde ich anders sehen ... :

Ja/Nein ... auf jeden Fall ENUM() ... TINYINT ermöglicht schliesslich 255 Werte ... und nicht 2 ... !

Alphanum haben letztlich erstmal gar nichts in ENUMS zu suchen (in TINYINT natürlich auch nicht) sondern in CHAR oder VARCHAR ...

ENUM ist intern keine Zeichenkette ... diese steht nur in der Tabellenbeschreibung ... intern wird's als 1 bzw. 2 Byte Integer verwaltet ... zur Info.

Ausschlaggebend wären für mich in diesem Falle schlichtweg die Useability ... und die Lesbarkeit von Code und Datenbank ... siehe Punkt 1 (Ja/Nein) ... !
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #5 (permalink)  
Alt 23-06-2005, 10:37
Friedward74
 Newbie
Links : Onlinestatus : Friedward74 ist offline
Registriert seit: May 2005
Beiträge: 36
Friedward74 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Da meine Werte eh immer in eine Zahl übersetzt werden ist es brauch ich ENUM nicht aufgrund der möglichen alphanummerischen Möglichkeiten.

Hab mich generell für ENUM entschieden, da dieser Datentyp ja anscheinend für festgelegte Werte geeignet ist. Ausser bei Variablen vo trotz festgelegter Werte eine > oder < Abfrage Sinn macht. Denke mal da ist die Performance besser (ohne es getestet zu haben). Von der Speicherintensität scheint sich da übrigens nix zu tun.
Mit Zitat antworten
  #6 (permalink)  
Alt 23-06-2005, 11:58
chansel0049
 Member
Links : Onlinestatus : chansel0049 ist offline
Registriert seit: Apr 2004
Beiträge: 294
chansel0049 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nu schaue mal guck!

Da les ich doch gleich mal nach!
__________________
chansel0049
----------------------------------------------------
if you've reached the bottomline - dig further!
Übersetzer gesucht? http://www.babelport.com
Mit Zitat antworten
  #7 (permalink)  
Alt 12-12-2006, 10:23
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wo wir gerade bei Ja/Nein Feldern und Tinyint() sind, mir ist da was sehr
komisches aufgefallen!

Und zwar habe ich in einer Tablle ein Feld mit:

nr1 = tinyint(4)
nr2 = tinyint(1)

Jetzt habe ich mal versucht, welches die größte Zahl ist, die ich in den
beiden Feldern speichern kann. Was schätzt ihr denn, was das Ergebnis
war?!

In BEIDEN FELDERN 127!

Das versteh ich absolut nicht! Was gibt denn die (4) an? Vier Stellen einer
Zahl (also max. 9999) wie beim String? Kann nicht sein! Aber vier Bytes
können es auch nicht sein. Aufgefallen ist mir, das die 127 genau dem
Ergebnis entspricht, wenn man die Zahlen 2^0 bis 2^6 zusammenzählt.
(1 + 2 + 4 + 8 + 16 + 32 + 64 = 127) Hat das damit etwas zu tun?

PS: MySQL5, verwaltung mit PHPmyAdmin
__________________
GLORIA PERPETUA
Mit Zitat antworten
  #8 (permalink)  
Alt 12-12-2006, 10:40
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von deklarmart
Was schätzt ihr denn, was das Ergebnis
war?!

In BEIDEN FELDERN 127!
Natürlich, TINYINT ist TINYINT.
Zitat:
Das versteh ich absolut nicht! Was gibt denn die (4) an?
Display Width, http://dev.mysql.com/doc/refman/4.1/...-overview.html
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 12-12-2006, 13:09
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OK, die sagen "M zeigt die maximale Anzeigebreite an." Und was heißt das jetzt?
Wenn Tinyint immer max. 255 speichern kann, egal ob ich (1) oder (4) nehme,
worin unterscheidt sich das Feld dann? Wo genau sehe ich einen Unterschied?!

Ich habe das immer so verstanden, das M genau wie bei Varchar(30)
die max. speicherbare Länge auf 30 Bytes festlegt...

__________________
GLORIA PERPETUA
Mit Zitat antworten
  #10 (permalink)  
Alt 12-12-2006, 13:18
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Da wird's noch mal deutlicher beschrieben: http://dev.mysql.com/doc/refman/4.1/...ric-types.html
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #11 (permalink)  
Alt 12-12-2006, 14:06
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OK, danke, die Bedeutung habe ich nun verstanden. Aber denn Sinn nicht!
Zitat:
Diese optionale Angabe der Anzeigebreite wird verwendet, um die Anzeige von Werten, die eine geringere als die für die Spalte festgelegte Breite aufweisen, nach links mit Leerzeichen aufzufüllen.
Warum das denn??? Wenn ich ein INT habe, dann soll das auch ein INT sein,
und nicht in irgendeiner Anzeige mit Leerzeichen gefüllt werden! OK, MySQL
entfernt die Leerzeichen anscheinend bei der Abfrage, aber wozu werden
die dann überhaupt eingefügt? Ich stell mich mal ganz dumm: "in der Anzeige
von PHPmyAdmin sehe ich keine Leerzeichen bei INT Zahlen!" Auf was
für eine Anzeige bezieht sich das also?
__________________
GLORIA PERPETUA
Mit Zitat antworten
  #12 (permalink)  
Alt 12-12-2006, 14:34
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Selbst wenn das mit den Leerzeichen nicht so einleuchtend sein sollte - bzgl. ZEROFILL sollte es das doch aber sein?

Btw, in diesem Zusammehang: Vielleicht könntest du dir mal angewöhnen, von verlinkten Dokumenten etwas mehr als nur die Einleitung und erste Absätze zu lesen, ja? Danke.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #13 (permalink)  
Alt 15-12-2006, 13:25
prego
 PHP Senior
Links : Onlinestatus : prego ist offline
Registriert seit: May 2005
Ort: Herborn
Beiträge: 1.609
prego ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nur zu Anmerkung, man kann auch mit enum numerische Werte speichern/lesen:

enum('nein','ja')

Code:
SELECT enum_spalte+0 FROM tab1 //ergibt z.B. 'nein'

INSERT INTO tab1 SET enum_spalte = 1 //ist das gleiche wie:
INSERT INTO tab1 SET enum_spalte = 'ja'
Damit verhält sich enum genau wie ein Array in PHP.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

09.10.2020 palle_1977 | Kategorie: PHP
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
Erotik-Portal

Mit unsererem Erotik-Portal erhalten Sie ein komplettes Internetprojekt inklusive einer bedienerfreundlichem Administration sowie zahlreichen wichtigen Funktionen. Unser auf PHP und MySQL basierendes Script bietet Ihnen - und Ihren Besuchern - komfort

18.06.2020 ISD-Genthin | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:47 Uhr.