Avatar billede ahrensberg Nybegynder
17. marts 2003 - 22:52 Der er 18 kommentarer og
1 løsning

Primær, Indeks og Unik?

Hvad betyder disse tre, da jeg ikke 100% sikker:
Primær, Indeks og Unik...

Og hvis der er nogen, som stedet jo tyder på(!), der er eksperter, kunne de jo også godt fortælle mig hvad "Længde/Værdi", "Attributter", "Nulværdi", "Standardværdi", "Ekstra" og "Fuldtekst" betyder?
Avatar billede ahv Nybegynder
17. marts 2003 - 22:54 #1
Får at optimere søgningen i din database, kan du indeksere det du søger mest på.

Et eksempel kunne være, en database med tabellen "test".
Heri er der 1.000.000 rækker som har et id og et datetime felt.
Lad os sige der er 11 ud af dissse 1.000.000 poster som er ældre end 2 timer og dem vil vi trække ud.
Dette vil tage ca. 0.260246992111
Går vi nu ind og indeksere datetime (som vi jo søger på) i tabellen, og prøver igen, ja så får du en tid der siger:
ca. 0.00083601474762
Altså er hastigheden steget ca. 300 gange.
Avatar billede ahv Nybegynder
17. marts 2003 - 22:57 #2
Længde - Det antal karaktere feltet max kan indeholde.

Standartværdi - Den siger vist sig selv, her akn du sætte en standart værdi, så hvis ikke den udfyldes vil den automatiks få denne.

Unik - Siger vist også sig selv, plejer at blive tildelt med et tal og der kan simpelt ikke være to ens, på denne måde kan man kende dem alle fra hinanden.

Ekstra - Her kan du sætte om den selv skal udfylde feltet, dette ville være smart at sætte på et id felt f.eks.
Avatar billede ahrensberg Nybegynder
17. marts 2003 - 22:58 #3
Oki-doki... Takker! Giver point senere, men du skal nok få en del, pga. dit hurtige og gode svar!
Avatar billede ahv Nybegynder
17. marts 2003 - 23:00 #4
ahrensberg -> Det med at indeksere var faktisk et forsøg jeg lavede sammen med en anden fra eksperten "schaefner" for ikke så mange dage siden for at se hvor meget det betød, også skrev jeg lige en hurtig tekst til det samtidig :o)
Avatar billede ahrensberg Nybegynder
17. marts 2003 - 23:02 #5
Oki-doki... sejt! :D
Avatar billede ahv Nybegynder
17. marts 2003 - 23:03 #6
Men det overraskede mig faktisk hvor meget hurtigere søgning egentlig belv.
Avatar billede ahrensberg Nybegynder
17. marts 2003 - 23:08 #7
Min MySQL udsmider følgende når jeg prøver at tilføje tabel:

"BLOB column 'maerke' used in key specification without a key length"

Vil det sige, at man skal angive en max længde i et indeksfelt?
Avatar billede ahrensberg Nybegynder
17. marts 2003 - 23:10 #8
Nope, det ville det ikke! Prøvede lige at gøre det... hva' betyder det så?
Avatar billede ahrensberg Nybegynder
17. marts 2003 - 23:12 #9
Er der nogen fordele ved at indeksere i en tabel med kun en række?

Der er nemlig et par tabeller jeg kun bruge til mine dropdowns, for ikke at "hardcode" disse...
Avatar billede ahv Nybegynder
17. marts 2003 - 23:14 #10
Ved at indeksere, vil du jo få en meget hurtigere søgning, men hvis du blot har 100 - 1000 rækker ved jeg ikke rigtigt hvor meget det kan betale sig, men self. er det kun et klik der skla til får at indeksere.
Avatar billede ahv Nybegynder
17. marts 2003 - 23:14 #11
Prøver at bare at oprette et normalt BLOB felt?
Avatar billede ahrensberg Nybegynder
17. marts 2003 - 23:17 #12
Hva' mener du med "Prøver at bare at oprette et normalt BLOB felt?"?
Avatar billede ahv Nybegynder
17. marts 2003 - 23:17 #13
"Min MySQL udsmider følgende når jeg prøver at tilføje tabel"

Så spørger jeg, prøver du bare at oprette en tabel med et BLOB felt?
Avatar billede ahrensberg Nybegynder
17. marts 2003 - 23:20 #14
Jeg prøver at oprette et felt med navnet "maerke" og vil så blot indeksere dette, men så kommer fejlmeddelelsen! Hvis jeg vælger ikke at indeksere denne, kan jeg godt oprette tabellen!
Avatar billede ahv Nybegynder
17. marts 2003 - 23:21 #15
Du kan ikke indeksere når der kun er et felt.
Avatar billede ahrensberg Nybegynder
17. marts 2003 - 23:23 #16
Ok... Har forresten givet dig pointene, selvom det ikke helt var meningen! Men ok, du fortjente dem, med dine svar!
Avatar billede ahrensberg Nybegynder
17. marts 2003 - 23:27 #17
Jeg får sammen fejl selvom jeg opretter flere felter!

Jeg prøver at oprette følgende:

CREATE TABLE `maerke` (

`maerke0` TINYTEXT NOT NULL ,
`maerke1` TINYTEXT NOT NULL ,
`maerke2` TINYTEXT NOT NULL ,
`maerke3` TINYTEXT NOT NULL ,
`maerke4` TINYTEXT NOT NULL ,
`maerke5` TINYTEXT NOT NULL ,
`maerke6` TINYTEXT NOT NULL ,
`maerke7` TINYTEXT NOT NULL ,
`maerke8` TINYTEXT NOT NULL ,
`maerke9` TINYTEXT NOT NULL ,
INDEX ( `maerke0` )
)
Avatar billede ahv Nybegynder
18. marts 2003 - 00:03 #18
Aah, du kan ikke lave indeks på tinytekst
Avatar billede ahv Nybegynder
18. marts 2003 - 00:05 #19
Brug evt. varchar. hvis du ønsker tekst med indeks
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester