Double indexes on one field

2005-10-03 Thread Yannick Warnier
Hi all,

Using PhpMyAdmin, I seldom get the warning message:
PRIMARY and INDEX keys should not both be set for column `ID`

I understand its meaning, but I was wondering to what extent having a
field indexed AND being a primary key might slow down/speed up my
queries.

Is that gonna take twice the time if I am searching on the ID field,
just because there are two indexes?

I'd like to have a rough idea of how serioulsy I need to avoid these.

Thank you,

Yannick


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Double indexes on one field

2005-10-03 Thread Martijn Tonies
 Using PhpMyAdmin, I seldom get the warning message:
 PRIMARY and INDEX keys should not both be set for column `ID`

 I understand its meaning, but I was wondering to what extent having a
 field indexed AND being a primary key might slow down/speed up my
 queries.

 Is that gonna take twice the time if I am searching on the ID field,
 just because there are two indexes?

 I'd like to have a rough idea of how serioulsy I need to avoid these.

Creating a PRIMARY KEY will automatically create an index.

Why would you create a second index for that field?

With regards,

Martijn Tonies
Database Workbench - tool for InterBase, Firebird, MySQL, Oracle  MS SQL
Server
Upscene Productions
http://www.upscene.com
Database development questions? Check the forum!
http://www.databasedevelopmentforum.com


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Double indexes on one field

2005-10-03 Thread Alec . Cawley
Yannick Warnier [EMAIL PROTECTED] wrote on 03/10/2005 11:18:05:

 Hi all,
 
 Using PhpMyAdmin, I seldom get the warning message:
 PRIMARY and INDEX keys should not both be set for column `ID`
 
 I understand its meaning, but I was wondering to what extent having a
 field indexed AND being a primary key might slow down/speed up my
 queries.
 
 Is that gonna take twice the time if I am searching on the ID field,
 just because there are two indexes?
 
 I'd like to have a rough idea of how serioulsy I need to avoid these.

It will not slow down your searches at all, but it will slow down your 
inserts. Since a PRIMARY KEY is a UNIQUE index that happens to have been 
declared to be primary, you are simply storing the same information twice. 
I cannot think of any possible benefit in having two identical indexes on 
a table, and there is a cost to maintaining two index trees.

Alec
 


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Double indexes on one field

2005-10-03 Thread Yannick Warnier
Le lundi 03 octobre 2005 à 12:29 +0200, Martijn Tonies a écrit :
  Using PhpMyAdmin, I seldom get the warning message:
  PRIMARY and INDEX keys should not both be set for column `ID`
 
  I understand its meaning, but I was wondering to what extent having a
  field indexed AND being a primary key might slow down/speed up my
  queries.
 
  Is that gonna take twice the time if I am searching on the ID field,
  just because there are two indexes?
 
  I'd like to have a rough idea of how serioulsy I need to avoid these.
 
 Creating a PRIMARY KEY will automatically create an index.
 
 Why would you create a second index for that field?

I'm asking myself the same question. I am working on someone else's
database.

Thanks both,

Yannick


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Double indexes on one field

2005-10-03 Thread Bastian Balthazar Bux
Yannick Warnier wrote:
 Le lundi 03 octobre 2005 à 12:29 +0200, Martijn Tonies a écrit :
 
Using PhpMyAdmin, I seldom get the warning message:
PRIMARY and INDEX keys should not both be set for column `ID`

I understand its meaning, but I was wondering to what extent having a
field indexed AND being a primary key might slow down/speed up my
queries.

Is that gonna take twice the time if I am searching on the ID field,
just because there are two indexes?

I'd like to have a rough idea of how serioulsy I need to avoid these.

Creating a PRIMARY KEY will automatically create an index.

Why would you create a second index for that field?
 
 
 I'm asking myself the same question. I am working on someone else's
 database.
 
 Thanks both,
 
 Yannick
 
 


Is it a multi-field index ? some versions of phpmyadmin show that
messages also if only one field is duplicated.

example:


CREATE TABLE `tab_sint` (
  `id_cns` tinyint(3) unsigned NOT NULL default '0',
  `anno_dep` smallint(4) unsigned zerofill NOT NULL default '',
  `data_dep` smallint(4) unsigned zerofill NOT NULL default '',
  `particolare` mediumint(8) unsigned NOT NULL default '0',
  `generale` mediumint(8) unsigned NOT NULL default '0',
  UNIQUE KEY `idx_cns_gen_anno`
(`anno_dep`,`id_cns`,`generale`,`particolare`),
  UNIQUE KEY `idx_cns_par_anno`
(`id_cns`,`anno_dep`,`tipo`,`particolare`,`bis`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=1 AUTO_INCREMENT=87189031 ;


This schema issue the warning on 'id_cns' but really make sense having 2
indices here since they serves different kind of querys and constraints.

Regards,
Francesco

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Double indexes on one field

2005-10-03 Thread Yannick Warnier
Le lundi 03 octobre 2005 à 16:24 +0200, Bastian Balthazar Bux a écrit :
 Yannick Warnier wrote:
  Le lundi 03 octobre 2005 à 12:29 +0200, Martijn Tonies a écrit :
  
 Using PhpMyAdmin, I seldom get the warning message:
 PRIMARY and INDEX keys should not both be set for column `ID`
 
 I understand its meaning, but I was wondering to what extent having a
 field indexed AND being a primary key might slow down/speed up my
 queries.
 
 Is that gonna take twice the time if I am searching on the ID field,
 just because there are two indexes?
 
 I'd like to have a rough idea of how serioulsy I need to avoid these.
 
 Creating a PRIMARY KEY will automatically create an index.
 
 Why would you create a second index for that field?
  
  
  I'm asking myself the same question. I am working on someone else's
  database.
  
  Thanks both,
  
  Yannick
  
  
 
 
 Is it a multi-field index ? some versions of phpmyadmin show that
 messages also if only one field is duplicated.
 
 example:
 
 
 CREATE TABLE `tab_sint` (
   `id_cns` tinyint(3) unsigned NOT NULL default '0',
   `anno_dep` smallint(4) unsigned zerofill NOT NULL default '',
   `data_dep` smallint(4) unsigned zerofill NOT NULL default '',
   `particolare` mediumint(8) unsigned NOT NULL default '0',
   `generale` mediumint(8) unsigned NOT NULL default '0',
   UNIQUE KEY `idx_cns_gen_anno`
 (`anno_dep`,`id_cns`,`generale`,`particolare`),
   UNIQUE KEY `idx_cns_par_anno`
 (`id_cns`,`anno_dep`,`tipo`,`particolare`,`bis`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=1 AUTO_INCREMENT=87189031 ;
 
 
 This schema issue the warning on 'id_cns' but really make sense having 2
 indices here since they serves different kind of querys and constraints.

No, no, it's just a dumb double index :-)

I am pretty sure it is completely useless. Actually I have already
removed it.

Yannick


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]