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

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