php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.05.2005, 19:05  
Gast
 
Beiträge: n/a
Standard performance: ja/nein als varchar(4) oder 1/0 als tinyint(1)?

Hallo alle

ich wusste nicht genau wie ich das Topic nennen soll, deswegen hab ich einfach mal versucht die Frage direkt darin unterzubringen

Ich hab einige hundert Datensätze in denen 12 Felder nur entweder "ja" oder "nein" enthalten und wollte fragen was sich in Hinblick auf die Geschwindigkeit besser eignet. Auf der Webseite die die Surfer sehn soll immer Ja order Nein ausgegeben werden.

Bisher hab ich also Ja und Nein als varchar(4) in der Datenbank stehn und zeige die Datensätze einfach so an:
Code:
Offen: <?php echo $row[41]; ?>
Extras: <?php echo $row[42]; ?>
und so weiter.

Wäre es sinnvoller und schneller anstelle von Ja und Nein als varchar(4) einfach 1 und 0 als tinyint(1) zu verwenden ?

Und wie würde ich das php mässig dann am besten mit der Ausgabe machen ? Ich weis zwar das es so ginge aber sieht irgendwie umständlich aus :

Code:
if($row[41] == 1){$offen = "Ja";} else{$offen = "Nein";}
if($row[42] == 1){$extras = "Ja";} else{$extras = "Nein";}
und dann die Ausgabe so:
Code:
Offen: <?php echo $offen; ?>
Extras: <?php echo $extras; ?>

Oder mach ich das hier jetzt irgendwie unnötig kompliziert ?

Vielen Dank schonmal für jede Hilfe

guschi



p.s. ich hatte es erst im MySQL Forum posten wollen, aber ich glaub PHP Anfänger passt eher
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.05.2005, 19:07  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

enum('0','1') .
http://dev.mysql.com/doc/mysql/en/enum.html
axo ist offline  
Alt 08.05.2005, 19:15  
Gast
 
Beiträge: n/a
Standard

ok, dann änder ich das mal schnell danke axo
 
Alt 08.05.2005, 19:23  
Gast
 
Beiträge: n/a
Standard

Und zur Ausgabe:
PHP-Code:
<?php
echo 'Offen: '.(($row[41] == 1)?'Ja':'Nein');
?>
Ist eine verkürzte Schreibweise für die if Bedingung (mit else Teil).

Das "== 1" könnte man sogar noch wegfallen lassen.
 
Alt 08.05.2005, 19:27  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

viele größere projekte verwenden bei 0/1 nicht enum sondern tinyint ...

warum habe ich noch nicht heraus gefunden aber ich verwende auch tinyint
Flor1an ist offline  
Alt 08.05.2005, 19:46  
Gast
 
Beiträge: n/a
Standard

Cool, danke yourdarkside

@RaZoR ja, ich bin mir irgendwie nie ganz sicher was für nen Typ ich für verschiedene Felder verwenden soll. Ich habs einfach so gemacht, das ich mir phpbb installiert hab und dann immer gespickt hab, was da jeweils für Typen verwendet wurden *g*
Was ich mir vorstellen könnte ist, das enum('0','1') vielleicht noch nen mini Tick "schneller" ist als tinyint(1), weil MySQL bei der enum Version gleich weis das es nur 2 verschiedene Werte geben kann, wohingegen es bei der tinyint Version 10 verschiedene sind. Andererseits hab ich aber auch 0,0 Ahnung wie MySQL intern diese ganzen Suchabfragen durchführt
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
UTF8 Dump erzeugt nach import in UTF8 kod DB falsche Umlaute Carino Datenbanken 18 07.05.2007 23:49
Normalisierung einer chaotischen Tabelle maeck Datenbanken 10 12.12.2006 18:17
ImageMagick Performance Problem M3g4Star PHP Tipps 2006 1 30.11.2006 09:35
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
Vererbung von Klassen und Performance ggfan PHP Tipps 2006 5 05.03.2006 12:00
[Erledigt] Problem mit mySQL Datenbanken 7 27.09.2005 12:06
Performance verbessern PHP Tipps 2005 2 17.03.2005 13:29
[Erledigt] PHP Performance PHP-Fortgeschrittene 11 13.09.2004 07:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
tinyint, warum tinyint und nicht varchar, tiny int, varchar schneller als tinyint, tinyint(), tinyint vs varchar performance, tinyint schneller, performance tinyint varchar

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.