mini TYPES HowTo

PHPportalen Forum Index » Databaser
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget Gå till sida Föregående  1, 2, 3  Nästa
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Peppe L-G



Medlem i: 3732 dagar
Från: Mullsjö
Status: Offline



#525580
Inlägg Skrivet: 2007-10-19 14:21      Ämne: Citera

Citat:
**** TIPS ****
Loggar du IP-adresser? VARCHAR(15)?
Lagra som INT UNSIGNED i stället och spara utrymme. Hur?
Kör INET_ATON('213.200.164.249') så blir det 2147483647 och för att få tillbaka kör man INET_NTOA(2147483647)
*************


Jag förstår inte det. Enligt ditt exempel så får ju IP-adressen ett annat värde efter att man kört INET_ATON('213.200.164.249'), eller?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
temptraq
Ex-Moderator



Medlem i: 4866 dagar
Från: Åkersberga
Status: Offline



#525584
Inlägg Skrivet: 2007-10-19 14:32      Ämne: Citera

Ja?
Kör INET_NTOA på det erhållna så får du tillbaka IP-adressen.

Jämför hur mycket VARCHAR(15) tar i utrymme med en INT (unsigned).
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Peppe L-G



Medlem i: 3732 dagar
Från: Mullsjö
Status: Offline



#525774
Inlägg Skrivet: 2007-10-20 10:09      Ämne: Citera

Det finns ingen risk att några får samma värde då man ändrar IP? Det går ju ifrån 12 siffror till 10, så det borde ju inte gå ihop :/
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
WizKid
Ex-Moderator



Medlem i: 5532 dagar
Från: Stockholm
Status: Offline



#525788
Inlägg Skrivet: 2007-10-20 11:57      Ämne: Citera

Det är ju bara en annan representation. Alla IP-nummer ska skrivas som xxx.xxx.xxx.xxx är bara något som människan kommit på för att det antagligen är lättare att säga istället för ett enormt stort tal.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida ICQ-nummer
Peppe L-G



Medlem i: 3732 dagar
Från: Mullsjö
Status: Offline



#525813
Inlägg Skrivet: 2007-10-20 13:28      Ämne: Citera

Ok. Fattade inte kopplingen mellan 213.200.164.249 och 2147483647, men nu så hänger jag med. Lite.
Om jag inte lyckas få ihop det så kan ni vara beredda på följdfrågor Wink

Tack för svaren.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Oxymoron
Ex-Moderator



Medlem i: 5122 dagar
Från: Uppsala
Status: Offline



#535441
Inlägg Skrivet: 2007-11-24 22:02      Ämne: Citera

VARCHAR har numera inte alls maxlängd 256 (2^Cool utan 65535 (2^16).
 

_________________
http://emilhernvall.github.io/
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Peppe L-G



Medlem i: 3732 dagar
Från: Mullsjö
Status: Offline



#557929
Inlägg Skrivet: 2008-02-15 11:50      Ämne: Citera

Ok, ytterligare en fråga. Om man sparar betyg (t.ex. hur bra en film är, och som kan anta värdena 0-10), ska man då ha:
    -tinyint

    -char(2) och ha en extra 0:a framför ensiffriga värden

    -enum med alla olika betygsvärden

Vilket av dessa alternativ ska man ta om man tar hänsyn till lagringsutrymme?
Vilket av dessa alternativ ska man ta om man tar hänsyn till hur snabbt det går att räkna ut medelvärde, antal som har gett betyget X och lite diverse som kan förekomma?

Personligen så skulle jag tro att char är sämst på bägge, och att enum tar minst plats i databasen, men det är bäst att använda tinyint pga att den räknar ut värden snabbare. Tänker jag rätt?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
temptraq
Ex-Moderator



Medlem i: 4866 dagar
Från: Åkersberga
Status: Offline



#557977
Inlägg Skrivet: 2008-02-15 15:15      Ämne: Citera

Citat:
Tänker jag rätt?

Ja, det skulle jag påstå
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Nimnim



Medlem i: 3222 dagar
Från: Hässleholm
Status: Offline



#591886
Inlägg Skrivet: 2008-07-27 16:18      Ämne: Citera

Tänkte bara på det där med IP-adressen.
Varför inte använda ip2long() och long2ip()?
Det har jag alltid använt! Men det kanske är dumt? Blir det nån skillnad?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
bitcomplex



Medlem i: 3694 dagar
Från: Skåne
Status: Offline



#604006
Inlägg Skrivet: 2008-10-07 13:58      Ämne: Citera

Något jag "upptäckt" är att det är otroligt viktigt att ha koll på sina typer när man sätter upp index och sedan ställer frågor till databasen.

Har i ett nytt projekt en existerande databas att jobba med. Jag har möjlighet att lägga till fält och index till databasen, men de fält som redan finns får jag inte röra - framför allt får jag INTE ändra typen för de olika fältet. detta stör mig oerhört då databasdesignern har envisats med hur många varchars som helst (när typen borde vara tinyint tex)...

Hade följande fråga:
KOD:
1:
SELECT Ar, Period FROM Grupp_Spelare WHERE LicensNr = 10724 GROUP BY Ar, Period;


Jag har satt ett index på LicensNr så det är ju inget konstigt med det...

...men en EXPLAIN på frågan visar att inget index används och det får köras en sökning på 515849 rader...

en EXPLAIN på SELECT Ar, Period FROM Grupp_Spelare WHERE LicensNr = '10724' GROUP BY Ar, Period; använder däremot mitt index på LicensNr och är av typen const och hämtar direkt de 13 rader som avses...
 

_________________
Twitter
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
pengi
Ex-Moderator



Medlem i: 3855 dagar
Från: JO57XQ
Status: Offline



#604095
Inlägg Skrivet: 2008-10-07 23:15      Ämne: Citera

bitcomplex skrev:
... förra inlägget ...


För att förtydliga detta så handlar det om hur =-operatorn och typecast funkar i mysql.

SELECT CAST("13 meter" AS SIGNED INTEGER);
ger: resultatet 13

detta innebär att "13 meter" = 13, vilket kan testas med:
SELECT "13 meter" = 13;

vilket ger en implicit typecast av "13 meter" för att kunna jämföra. Detta ger även en implicit typecast av kolumnen man jämför med i första exemplet i bitcomplex post. Att påverka kolumnen man söker på på minsta lilla sätt gör att indexet blir obrukbart.

Använd _alltid_ rätt variabeltyp om möjligt när man skriver kod. Rätt variabeltyp i en sökning är inte vad det borde vara, utan vad databasen säger att det är. (detta gäller även i php för att få snygg kod för övrigt, men det är en annan historia. Tänker på $integervariabel = "13";)
 

_________________
"Question everything. Never trust propaganda. Keep on hacking." - Phrack
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Tigerfisk



Medlem i: 3566 dagar
Från: Karlskrona
Status: Offline



#608957
Inlägg Skrivet: 2008-11-03 20:22      Ämne: Re: mini TYPES HowTo Citera

temptraq skrev:

DATE och TIME resreverar 3 bytes, YEAR bara 1 byte och DATETIME 8 bytes. Så det finns mycket plats att spara genom att göra 'rätt'.
En dum fråga kanske men menar du att Date och TIME reserverar 3 tillsammans eller 3 var?

En annan fråga. Om man använder sig utav TIME, Vilket är då bästa sättet att bara skriva ut timme och minuter (inte sekunder)

MVH Tigerfisk
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
Peppe L-G



Medlem i: 3732 dagar
Från: Mullsjö
Status: Offline



#608964
Inlägg Skrivet: 2008-11-03 20:32      Ämne: Re: mini TYPES HowTo Citera

Tigerfisk skrev:
En annan fråga. Om man använder sig utav TIME, Vilket är då bästa sättet att bara skriva ut timme och minuter (inte sekunder

Jag tror det är DATE_FORMAT.

http://www.phpportalen.net/viewtopic.php?t=96502&highlight=dateformat
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Tigerfisk



Medlem i: 3566 dagar
Från: Karlskrona
Status: Offline



#625631
Inlägg Skrivet: 2009-02-25 19:51      Ämne: Re: mini TYPES HowTo Citera

Peppe L-G skrev:
Tigerfisk skrev:
En annan fråga. Om man använder sig utav TIME, Vilket är då bästa sättet att bara skriva ut timme och minuter (inte sekunder

Jag tror det är DATE_FORMAT.

http://www.phpportalen.net/viewtopic.php?t=96502&highlight=dateformat

Glömde tacka för hjälpen där, Men datetime funkade bra.

Nu till en annan fråga.

När man sparar url i databaser, vad brukar ni göra? När man inte vet hur lång den kan bli kanske det är bäst att spara som text?

Eller hur tycker ni?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
hallis



Medlem i: 5152 dagar
Från: Stockholm
Status: Offline



#682450
Inlägg Skrivet: 2010-06-15 16:34      Ämne: Citera

Jag är i utvecklingsfasen av en webbshop och funderar hur jag skall spara datum för tillagd produkt samt ändrad produkt.

Det står mellan att spara datum och tid i kolumner med typen INTEGER, TIMESTAMP eller DATETIME.

Storleken på databasen kommer inte påverkas (markant) då det inte handlar om fler än 300 rader/produkter.

Min fråga är vad som är (mer) korrekt.
 

_________________
Utvecklingsbloggen
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget Gå till sida Föregående  1, 2, 3  Nästa
PHPportalen Forum Index » Databaser
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic