Avatar billede m_bold Praktikant
08. oktober 2008 - 17:41 Der er 7 kommentarer og
1 løsning

Brug af indexes

Hej.

Jeg har en tabel som jeg gerne vil optimere til hurtig søgning på "sideid", "sideidchar" og "tid".

Tabellen ser sådan ud:

CREATE TABLE `tabel1` (
  `id` int(11) NOT NULL auto_increment,
  `sideid` int(10) NOT NULL default '0',
  `sideidchar` varchar(255) default NULL,
  `tid` datetime NOT NULL default '0000-00-00 00:00:00',
  `ip` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id`))

Når jeg sætter index på via phpMyAdmin og eksporterer tabellen, så ser den sådan ud:

CREATE TABLE `tabel1` (
  `id` int(11) NOT NULL auto_increment,
  `sideid` int(10) NOT NULL default '0',
  `sideidchar` varchar(255) default NULL,
  `tid` datetime NOT NULL default '0000-00-00 00:00:00',
  `ip` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id`)
  KEY `sideid` (`sideid`,`sideidchar`,`tid`))

2 spørgsmål:

1. Er det den optimale måde at optimere på? - hvad er evt. bedre?
2. Er KEY det samme som INDEX?
Avatar billede arne_v Ekspert
08. oktober 2008 - 17:48 #1
Kun hvis du altid vil soege paa alle 3 varedier.

Ellers skal du have 3 indexes paa 1 felt fremfor 1 index paa 3 felter.
Avatar billede m_bold Praktikant
08. oktober 2008 - 18:00 #2
Ok, det var også min mistanke.

Hvad med ordet KEY - dækker det bare over INDEX?
Avatar billede arne_v Ekspert
08. oktober 2008 - 18:14 #3
Ja.
Avatar billede arne_v Ekspert
08. oktober 2008 - 18:15 #4
Ja.
Avatar billede m_bold Praktikant
08. oktober 2008 - 18:17 #5
Perfekt - tak for hjælpen.

Smid bare et svar, hvis du er interesseret i points... :-)
Avatar billede arne_v Ekspert
08. oktober 2008 - 18:37 #6
http://dev.mysql.com/doc/refman/5.0/en/create-table.html er ret klar:

KEY is normally a synonym for INDEX.
Avatar billede arne_v Ekspert
08. oktober 2008 - 18:37 #7
og et svar
Avatar billede m_bold Praktikant
08. oktober 2008 - 18:39 #8
Så er der i hvert fald ikke tvivl :-)
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