30. januar 2005 - 11:39Der er
14 kommentarer og 1 løsning
auto increment
Hvis man har et felt med auto_increment. Er det så i ALLE tilfælde mest optimalt at have en primary key på den, eller er der nogle tilfælde hvor det er godt nok bare at have en almindelig index?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
jamen jeg har jo også kun et auto_increment felt i hver table :) jeg ville bare lige vide om det i ALLE tilfælde vil være mest optimalt med en primary key på den?
ud fra denne query, hvordan ville du så indexere tablen? :)
SELECT debate.id, IFNULL(MAX(debate2.time), debate.time) AS last_time FROM $DB.debate debate LEFT JOIN $DB.debate debate2 ON debate.id=debate2.thread_id && debate2.reply_id!=0 WHERE debate.topic='$_GET[tab]' && debate.reply_id=0 GROUP BY debate.thread_id ORDER BY last_time DESC
CREATE TABLE `debate` ( `id` mediumint(7) NOT NULL auto_increment, `topic` tinyint(1) NOT NULL default '0', `thread_id` mediumint(7) NOT NULL default '0', `reply_id` mediumint(7) NOT NULL default '0', `user_id` smallint(5) unsigned NOT NULL default '0', `time` int(10) NOT NULL default '0', `subject` varchar(40) NOT NULL default '', `msg` text NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1 ;
Et index behøver ikke at være unik. Et unikt index ligner meget en primary key. Men en felt med unikt index kan indeholde NULL i modsætning til en primary key og du kan have flere unikke index men kun en primary key.
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.